Consistency Patterns Demystified

A distributed system provides benefits such as scalability and fault tolerance. However, maintaining consistency across the distributed system is non-trivial. Consistency is vital to achieving reliability, deterministic system state, and improved user experience.

A distributed system replicates the data across multiple servers to attain improved fault tolerance, scalability, and reliability. The consistency patterns (consistency models) are a set of techniques for data storage and data management in a distributed system. The consistency pattern determines the data propagation across the distributed system. Hence, the consistency pattern will impact the scalability and reliability of the distributed system.

Real-Time Presence Platform System Design

The system design of the Presence Platform depends on the design of the Real-Time Platform. I highly recommend reading the related article to improve your system design skills. The original article was published on systemdesign.one website.

What Is the Real-Time Presence Platform?

The presence status is a key feature to make the real-time platform engaging and interactive for the users (clients). In layman’s terms, the presence status shows whether a particular client is currently online or offline. The presence status is popular on real-time messaging applications and social networking platforms such as LinkedIn, Facebook, and Slack [2]. The presence status represents the availability of the client for communication on a chat application or a social network.

Uber System Design

The popular implementations of the ride-hailing service are the following:

  • Uber
  • Lyft
  • Curb
  • Grab

Requirements

  • The rider can see all the available nearby drivers
  • The driver can accept a trip requested by the rider
  • The current location of the rider and driver should be continuously published on the trip confirmation

Data Storage

Database Schema