Distributed systems are becoming increasingly popular today, with the world’s ever-growing technological expansion. It is a large and complicated area of computer science research.
One of the biggest problems of Distributed Systems is reaching consensus among the distant nodes. In this article, we will discuss in detail Raft which is one of most popular and modern consensus algorithms.
Before diving into Raft, lets begin by understanding what distributed consensus means.
In distributed computing systems, software applications are distributed across multiple nodes and work together to appear as a single coherent unit to the end user. These nodes coordinate with each…
In recent years, almost all the software applications have moved to distributed architecture to support increasing load and traffic by leveraging concepts such as cloud computing and big data.
In this blog, I will be discussing Consistent Hashing which is used in building scalable distributed systems. Consistent Hashing makes distributed systems elastically scalable.
Before jumping straight into Consistent Hashing, lets quickly revisit hashing and then try to understand how the need for consistent hashing emerged.
Hashing is the process of converting a given piece of data of arbitrary size into another value of fixed size, usually a integer, called
In software development, Design Patterns are a collection of generic solutions used to solve commonly occurring design problems. They help us to speed up to overall development process and prevent common issues which can cause major problems at later development stage.
In this blog, I will be discussing two well known design patterns, viz. Observer and Publisher-Subscriber pattern. These are often mistaken to be same as one another, but are actually quite different. First we will discuss each pattern in brief and in the end discuss their differences. Lets start by discussing Observer Pattern first.
Observer design pattern falls under…
Software Engineer @Grab | Avid learner| Curious Mind