Distributed Consensus is one of the hardest problems in the distributed computing domain and there have been many designs and algorithms built for solving it.

In this article, we are going to talk about Raft distributed consensus algorithm which is one of the modern and most popular consensus algorithms out there.

What is Distributed Consensus?

Before we begin the discussion, let’s try to understand what Distributed Consensus means. When we are designing distributed systems, we have to create systems with software applications that are distributed across multiple nodes. …


It’s a great pleasure to announce the public availability of the book, ‘Microservices for Enterprise’ which I co-authored with Prabath.

The book is available for purchase on Amazon, Barnes & Nobel and Apress worldwide.

Why “Microservices for Enterprise”?

This is the second book that I’ve published and the very first book that is written on a generic and broad topic such as Microservices (my first book was on a WSO2 specific technology, WSO2 ESB).

So, first of all, why we have thought of writing a book on Microservice architecture? Microservice architecture is probably the most widely discussed and adopted architecture pattern in the crowded…


In one of my previous articles on service mesh, there were a couple of questions related to the relationship between Service Mesh and API Gateway. So, in this post, I’m planning to discuss the usage of Service Mesh and API Gateway.

In order to differentiate API Gateways and service mesh, let’s have a closer look at the key characteristics API Gateways and Service Mesh.

API Gateway: Exposes your services as managed APIs

The key objective of using API Gateway is to expose your (micro) services as managed APIs. So, the API or Edge services that we develop at the API Gateway layer serves a specific business functionality.

  • API/Edge…


Microservices architecture has been evolving a lot during the last couple of years and there are quite a few new concepts and patterns are emerging. ‘Service Mesh’ concept is getting quite popular. In this post, I’m planning to cover the key concepts related to Service Mesh and how it is used in real-world microservices implementations.

Why ‘Service Mesh’?

As with many emerging technologies, there was a lot of hype around the Microservices Architecture. Most people think that microservices is the answer to all the problems they had with previous architecture such as SOA/ESB. However, when we observe the real world microservices implementations, we…


With Microservices architecture, a single software application/functionality is implemented as a combination of multiple microservices and their interactions. Hence the communications between services and their coordination are vital for a successful realization of microservices architecture.

It is important to understand that, the tasks that an ESB does in an ESB based SOA implementation, don’t simply disappear when you switch to Microservices Architecture. Rather, all ESB/integration functionalities are segregated and dispersed among all the microservices. Therefore some level of logical organization of the microservices based on their granularity and capabilities is quite useful when it comes to the implementation of services.


Nowadays, Microservices is one of the most popular buzz-words in the field of software architecture. There are quite a lot of learning materials on the fundamentals and the benefits of microservices, but there are very few resources on how you can use microservices in the real world enterprise scenarios.

In this post, I’m planning to cover the key architectural concepts of the Microservices Architecture(MSA) and how you can use those architectural principles in practice.

Monolithic Architecture

Enterprise software applications are designed to facilitate numerous business requirements. Hence a given software application offers hundreds to functionalities and all such functionalities are piled into…


I’ve been writing/speaking on the topics related to Microservices for a quite a sometime. Although many people now understand the fundamentals of microservices architecture, still there’s a quite a lot of confusion when it comes to the application of Microservices with API and Integration technologies.

From Monolithic Applications to Microservices

Let’s start our discussion with how the enterprise architecture has evolved from monolithic applications to microservices.

Monolithic Applications

When it comes to building a software solution to solve various business requirements, we’ve used(pre-SOA era) to build monolithic applications on top of various systems such as databases, file storages etc.(System of Records).

These applications are designed to facilitate…


Brown-field enterprises require to integrate the existing software application, services, systems and data, to form new software solutions to realize business functionalities.

The task of plumbing these applications, services, systems and data is known as Enterprise Integration.

Although Enterprise Integration is not a new thing, with the increasing adoption of Cloud, Mobile, APIs, IoT, along with the convergence of Data and Application integration technologies, Enterprise Integration is becoming a renewed hot topic in the Enterprise Architecture landscape.

Centralized Integration Middleware — SOA and ESB

Almost all the integration middleware solutions out there are based on the concept of using a central integration bus(a.k.a Enterprise Service Bus- ESB)…


In this post I will discuss the current state of the Enterprise Integration landscape, the characteristics of future integration middleware and how Ballerina; a new programming language which is designed and optimized for integration, empowers the future of Enterprise Integration middleware.

State of Enterprise Integration Technologies Landscape

Brown-field enterprises require to integrate the existing software application, services, systems and data, to form new software solutions to realize business functionalities. The task of plumbing these applications, services, systems and data is known as Enterprise Integration. Although Enterprise Integration is not a new thing, with the increasing adoption of Cloud, Mobile, APIs, IoT, along with the convergence of…

Kasun Indrasiri

Author of O’Reilly ‘gRPC Up and Running’, ‘Microservices for the Enterprise’, Software Architect, Product Manager, Apache Committer, Director-Integration @WSO2

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