Microservices Architecture

Microservices has been a buzzword in software engineering recently. Everyone wants to build their application around Microservices architecture. Before you jump onto the bandwagon, lets do a critical review of Microservices. We will look at the cases where it is appropriate along with  advantages and disadvantages. Before we proceed let us look at how to…

Apache Kafka: What sets it Apart?

Each day, large amounts of data and metrics are collected from real time activity streams, performance metrics, application logs, web activity tracking and much more. Modern scalable applications need a messaging bus that can collect this massive continuous stream of data without sacrificing good performance and scalability. Apache Kafka is built ground up to solve…

Building Scalable Applications Part 1: Handling Transient Failures in Cloud Applications

While there are numerous advantages of deploying on the cloud, there are no guarantees that the cloud platform services will respond successfully every time. In a cloud environment periodic transient failures should be expected. The approach should be to minimize the impact of such failures on the application execution by anticipating and proactively handling failures.The…

Building Scalable Applications Part 2: Design for the cloud

In the previous post, we covered the benefits of moving to the cloud for scale. In this post, we will look at some best practices to build applications for the cloud.1. Use messaging to decouple components One of the important principles of scalable application design is to implement asynchronous communication between components. To start with…