Platform Engineering

Post Image

Implementing Authentication in Next.js v13 Application with Keycloak(Part — 2)

In the last article, I have discussed about bootrsapping keycloak server along with a basic setup of nextjs with next-auth. In this subsequent article, our focus will shift to configuring next-auth to enhance the user experience while keeping a security-first approach. A. Bootstrapping keycloak server B. Setting up nextjs along with next-auth C. Refreshing access tokens D. Federated logout E. Securing pages with middleware F. Customising sign in and sign out routes (A & B was discussed in the last part, we will discuss C–F in this part) By default next-auth uses JWT session strategy....

Read
Post Image

Implementing Authentication in Next.js v13 Application with Keycloak(Part — 1)

Authentication and authorization are the digital gatekeepers of a web app, playing pivotal roles in ensuring a secure and controlled user experience. One such tool which can help us do this task for us is Keycloak. Keycloak is an open-source Identity and Access Management (IAM) tool that handles authentication and authorisation of applications. It acts as an identity broker, allowing users to authenticate with their preferred identity provider and apply different authorisation mechanisms, such as role-based or attribute-based. This article will...

Read
Post Image

Streamlining GitHub Actions Testing with Act

Photo by Jakob Owens on Unsplash In the ever-evolving landscape of software development, efficiency in testing and validating workflows is crucial. “Act” is a powerful tool designed to enhance and streamline the testing process within GitHub Actions. This tool is not only a time-saver but also a facilitator for a smoother and more reliable CI/CD pipeline. Think globally act locally  — Act allows developers to run GitHub Actions workflows locally on their machines. This feature is invaluable for rapid iteration and debugging before...

Read

A Practical Guide to using Advisory Locks in your Application

Databases like PostgreSQL and MySQL provide various locking mechanisms to control concurrency and to avoid data corruption. We looked at different locks in a previous blog and in that I briefly covered advisory locks. In this blog let’s take a deep dive into it. We will implement the locks on the database and see how they work. I have also provided the code implementation for it in Java so that you can use it in your applications. Advisory locks are locks provided...

Read

Sahaj & Citizens of The Great Barrier Reef: The Next Chapter of Scale, Complexity & Collaboration for Conservation

The Great Barrier Reef, Australia’s iconic ecological site and the world’s largest marine ecosystem is buckling under the effects of climate change and other factors. According to a report published by government scientists, the natural landmark suffered its sixth mass bleaching event in 2022 with 91% of reefs affected by coral bleaching. Driven by this sentiment, Citizens of the Great Barrier Reef entered the fray to gather data about the reef for scientists to analyse it and find solutions. Its...

Read

Revolutionizing a Leading Automotive Giant's Digital Ecosystem through Innovation and Data-Led Strategies

In the pursuit of continuous improvement and industry transformation, we partnered with a leading automotive giant on a journey to modernise its digital ecosystem. This endeavour aimed to not only enhance the core products and technologies but also stimulate innovation, scale operations and instil data-led strategies at the heart of its operations. The purpose-built Extensible Data Platform revolutionizes the post-purchase usage lifecycle of vehicles. It facilitates real-time vehicle health and telemetry data, efficient fleet and trip management, tracking, safety alerts...

Read

A practical guide to implementing sensitive data encryption using Postgres Pgcrypto

In the previous blog, we discussed the importance of securing PII and sensitive data points captured by enterprises as part of their business apps, analyzed different techniques of securing these data points namely, Encryption and Tokenization, and finally, compared these different techniques. Continuing in this blog series, we will now cover the database-side encryption technique of sensitive data with Spring Boot and Hibernate Technologies. Information on this topic is limited, incomplete and fragmented across different websites, documentation, and blogs. This blog...

Read
Post Image

DOOH programmatic bidding; Scaling to ~15k requests per second with Java — Part 2

In my previous blog, I discussed the business need for a high-performance bidder, the challenges of implementing such a solution, and the technology stack we used (Java and Vert.x). This blog post builds on the previous one by providing more details on how we diagnosed bottlenecks and made changes to the infrastructure to handle increased traffic.Challenges with increased trafficAfter integrating with the first supplier-side platform (SSP), we quickly began working on integration with the second SSP. We completed the integration, user acceptance...

Read
Post Image

Typescript for better error handling

Photo by Dawid Zawiła on Unsplash There are times when you want to return something other than the normal result of a function call. It’s quite often that we see an exception being thrown in these cases. Exceptions have their place to be used in exceptional situations (like losing network connectivity) but when used in regular code flow, it can cause issues. I experienced this when I was a few years into my career. There was an existing piece of code that would...

Read
Post Image

Using Hashicorp Vault with a Micronaut application in K8s

Managing the secrets of your applications is an integral part of taking an application to production. After all, they contain the keys to your kingdom. Many Java frameworks provide out-of-the-box integration with Vault; in most cases, you do not even need to write any boilerplate code. In this article, I will demonstrate how Micronaut integrates with Vault, what are some of the challenges with this method and how we can overcome these challenges. Micronaut supports integration with vault through this...

Read