Spring Endpoint to handle Json Patch and Json Merge Patch
In a previous blog post I went over the basics of Json Patch and Json Merge Patch and how a code that performs these operations looks like. In this post I will go over the details of how to expose a...
View ArticleKotlin "Result" type for functional exception handling
In a previous post I had gone over how a "Try" type can be created in Kotlin from scratch to handle exceptions in a functional way. There is no need however to create such a type in Kotlin, a type...
View ArticleGoogle Cloud Build - Hello World
I have been exploring Google Cloud Build recently and this post is a simple introduction to this product. You can think of it as a tool that enables automation of deployments. This post though will not...
View ArticleCloud Build - CI/CD for a Java Project
In a previous blog post I went over the basics of what it takes to create a configuration for Cloud Build. This post will expand on it by creating a functional CI/CD pipeline for a java project using...
View ArticleCloud Build and Gradle/Maven Caching
One of the pain points in all the development projects that I have worked on has been setting up/getting an infrastructure for automation. This has typically meant getting access to an instance of...
View ArticleGoogle Cloud Deploy - CD for a Java based project
This is a short write-up on using Google Cloud Deploy for Continuous Deployment of a Java-based project. Google Cloud Deploy is a new entrant to the CD space. It facilitates a continuous deployment...
View ArticleService to Service call patterns in Google Cloud - GKE
This is a series of posts that will explore service to service call patterns in some of the application runtimes in Google Cloud. This specific post will explore GKE without using a service mesh and...
View ArticleService to Service call patterns - GKE with Anthos Service Mesh on a single...
This is second in a series of posts exploring service to service call patterns in some of the application runtimes on Google Cloud. The first in the series explored service to service call patterns in...
View ArticleService to Service call patterns - Multi-cluster Service
This is third blog post as part of a series exploring service to service call patterns in different application runtimes in Google Cloud.The first post explored Service to Service call pattern in a GKE...
View ArticleCloud Bigtable - Write and Retrieval
This is a quick write up based on a few days of experimentation with Cloud Bigtable, with the following objectives:1. Using an emulator for local development2. A high level schema design with retrieval...
View ArticleService to Service call pattern - Using Anthos Service Mesh
Anthos Service Mesh makes it very simple for a service in one cluster to call service in another cluster. Not just calling the service but also doing so securely, with fault tolerance and observability...
View ArticleService to Service Call Pattern - Multi-Cluster Ingress
Multi-Cluster Ingress is a neat feature of Anthos and GKE (Google Kubernetes Engine), whereby a user accessing an application that is hosted on multiple GKE clusters, in different zones is directed to...
View ArticleGoogle Cloud Java Client — ApiFuture to Reactive types
Google Cloud Java Client libraries use a ApiFuture type to represent the result of an API call. The calls are asynchronous and the ApiFuture type represents the result once the call is completed.If...
View ArticleModeling one-to-many relation in Firestore, Bigtable, Spanner
I like working with services that need little to no provisioning effort — these are typically termed as Fully Managed services by different Providers.The most provisioning effort is typically required...
View ArticleCalling Google Cloud Services in Java
If you want to call Google Cloud Services using a Java based codebase, then broadly there are two approaches to incorporating the client libraries in your code — the first, let’s call it a “direct”...
View ArticleGoogle Cloud Structured Logging for Java Applications
One advice for logging that I have seen when targeting applications to cloud platforms is to simply write to Standard Out and platform takes care of sending it to the appropriate log sinks. This...
View ArticleGoogle Cloud Functions (2nd Gen) Java Sample
Cloud Functions (2nd Gen) is Google’s Serverless Functions as a Service Platform. 2nd Generation is now built on top of the excellent Google Cloud Run as a base. Think of Google Cloud Run as a...
View ArticleGoogle Cloud Function Gradle Plugin
It is easy to develop a Google Cloud Function using Java with Gradle as the build tool. It is however not so simple to test it locally.The current recommended approach to testing especially with...
View ArticleSkaffold for Local Java App Development
Skaffold is a tool which handles the workflow of building, pushing and deploying container images and has the added benefit of facilitating an excellent local dev loop. In this post I will be exploring...
View ArticleCloud Deploy with Cloud Run
Google Cloud Deploy is a service to continuously deploy to Google Cloud Application runtimes. It has supported Google Kubernetes Engine(GKE) so far, and now is starting to support Cloud Run. This post...
View ArticleCloudEvent Basics
CloudEvent is a way of describing events in a common way. This specification is starting to be adopted across different event producers across Cloud Providers, which over time will provide these...
View ArticleSkaffold for Cloud Run and Local Environments
In one of my previous posts, I had explored using Cloud Deploy to deploy to a Cloud Run environment. Cloud Deploy uses a Skaffold file to internally orchestrate the steps required to build an image,...
View ArticleCloud Run Health Checks — Spring Boot App
Cloud Run services now can configure startup and liveness probes for a running container.The startup probe is for determining when a container has cleanly started up and is ready to take traffic. A...
View ArticleBigtable Pagination in Java
Consider a set of rows stored in Bigtable table called “people”:My objective is to be able to paginate a few records at a time, say with each page containing 4 records:Page 1:Page 2:Page 3:High-Level...
View ArticleEventArc with CloudRun
Google Cloud EventArc provides a simple way to act on events generated by a variety of Google Cloud Services.Consider an example.When a Cloud Build trigger is run, I want to be notified of this event...
View Article