Today I am going to specifically talk about how to implement JIB for multi-module project.

Image for post
Image for post

What is multi-module project?

A multi-module project is built from an aggregator POM that manages a group of submodules. In most cases, the aggregator is located in the project’s root directory and must have packaging of type pom.

Now, the submodules are regular Maven projects, and they can be built separately or through the aggregator POM.

By building the project through the aggregator POM, each project that has packaging type different than pom will result in a built archive file.

You can refer to this article to understand it…


Image for post
Image for post

To keep this article simple and short I would not be dwelling into what is graceful shutdown and why this is so important when it comes to K8s. You can read this blog on medium to understand the details.

I am going to explain about how to enable this feature specifically for spring boot applications in this article.

You need to have Sprint boot version 2.3.x for the below to work. This latest version of spring boot supports the graceful shutdown out of the box. You need literally 0 code changes to achieve this and save some embarrassment :)

Here…


We wanted to implement OAuth2 security using JWT to protect our API(s). We are running our micro-service application in kubernetes platform and using Active Directory as our Authorization Server.

High Level Flow

Image for post
Image for post

In our case the Authorization server is “Azure AD”. The resource server is our micro-service which exposes some API(s) which we want to protect. The client in our case is other applications and not a user. i.e. B2B.

Azure AD requires some changes to make it work as per OAuth2 compliance. you can follow this article on medium.com https://medium.com/@abhinavsonkar/making-azure-ad-oidc-compliant-5734b70c43ff


What is Cosmos DB

Azure Cosmos DB is Microsoft’s globally distributed, multi-model database service. With a click of a button, Cosmos DB enables you to elastically and independently scale throughput and storage across any number of Azure regions worldwide. You can elastically scale throughput and storage, and take advantage of fast, single-digit-millisecond data access using your favorite API including: SQL, MongoDB, Cassandra, Tables, or Gremlin. Cosmos DB provides comprehensive service level agreements (SLAs) for throughput, latency, availability, and consistency guarantees, something no other database service offers.

Image for post
Image for post

Our Use Case

We have an on-premises Java application which we are in process…

Shantanoo Kirtane

Senior Software Engineer — Samsclub.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store