AWS – Identity and Access Management

Identity and Access Management (IAM) is widely used in most of the enterprises to authenticate and authorize the users to grant access to applications and systems that supports various functions within the organization. It is one of the basic components when it comes to enterprise security and defense in-depth principles that organizations adopt to protect … Continue reading AWS – Identity and Access Management

Spring Boot Mutual Authentication (2 Way SSL/TLS)

In one of my earlier articles on cryptographic basics, I discussed about the 3 basic services provided by cryptographic techniques i.e. confidentiality, integrity and authentication. Let's see how we can have confidentiality and authentication implemented in a Spring Boot Application. SSL/TLS establishes an encrypted link between client and server application such that all the communication between the … Continue reading Spring Boot Mutual Authentication (2 Way SSL/TLS)

Service Discovery – Spring Cloud Eureka

In microservices architecture, we tend to create lot of services which are loosely coupled from each other. Inherently this distributed system design has more inter-service communication and hence each service running in cloud should be able to locate other dependent services easily. Service discovery in the past has been done using service locators or configured … Continue reading Service Discovery – Spring Cloud Eureka

Spring Cloud Configuration

In my previous post on Cloud Native Applications, we discussed the benefits of 12 factor application and the characteristics that makes the application cloud ready. Once of the characteristics we discussed was to store the configuration outside the build artifact. Now let's see how we can leverage Spring Cloud Configuration server to store and inject the configuration that … Continue reading Spring Cloud Configuration

Cloud Native Applications

My previous post on Microservices discussed the benefits of decomposing monolithic applications into smaller services which could be deployed independently. We also discussed that microservices is an architectural style which promotes the applications to have a clear separation of concern a.k.a. bounded contexts and use the most appropriate technology stack. Once we embark on the microservices journey, we … Continue reading Cloud Native Applications


Presently, there is a lot of hype in the industry, especially large enterprises, to adopt Microservices architecture due to the benefits it offers when compared to monolithic architecture. However, it is important to understand that adopting Microservices is not a free lunch as it not only impacts just the technology but also people, processes and the team organization. … Continue reading Microservices

Cryptography Basics

In the last two decades there has been a significant push towards digitization of services allowing us to do online shopping, banking, media streaming and the list goes on. In order to access these services, customers need to share their personal data and the highly sensitive data like credit cards, SSN, bank accounts details etc. with the service provider. Hence, … Continue reading Cryptography Basics

Application Log Analysis and Data Visualization

Application log data is a useful source of information that provides an insight on how the customer interacts with the product. It also helps in troubleshooting the issues with the application and getting to the root cause of the problem. Most enterprises rely on APM (Application Performance Management) tools to monitor the system health ensuring application availability and performance levels … Continue reading Application Log Analysis and Data Visualization

Queuing Theory for evaluating system performance in Event Driven Architecture – Part 2

In my previous post on Event Driven Architecture (EDA), we looked at the basic building blocks of EDA and some of the considerations around the system performance for event generation, processing and publishing. We discussed about the importance of running the performance tests to evaluate the system behavior under peak load. In this article, we'll discuss the basics … Continue reading Queuing Theory for evaluating system performance in Event Driven Architecture – Part 2

Queuing Theory for evaluating system performance in Event Driven Architecture – Part 1

Event Driven Architecture (EDA) is gaining a lot of popularity due to the benefits it offers to an enterprise to easily connect multiple disparate systems. Instead of creating a direct or point to point communication links between the systems that need to talk to each other, the communication process can be decoupled by having the … Continue reading Queuing Theory for evaluating system performance in Event Driven Architecture – Part 1