The Art of Scalable Systems: Designing for Success

Buckle up, intrepid coder! The Art of Scalable Systems is your passport to unraveling the mysteries of services. Explore the hilarious mishaps and ingenious solutions to everyday problems.

📚 NB: This is an attempt at documenting all my system design notes from reading and hands-on experience, starting with explaining the basic components of a service to providing examples of real world systems and discussing tradeoffs of possible solutions.

Table of contents

Basic Concepts

Design Patterns

ProblemSolution

Check set contains

Where to insert data

Ensure strong consistency

Ensure high availability

Atomicity in data transfers

Concurrent updates to file

Concurrent node writes

Node liveness

Deal with dead nodes coming back

Update dead nodes with missed data

Update stale nodes

Check data inconsistency

Data Synchronisation Patterns

Monolith Decomposition Patterns

Real World Scenarios

Infrastructure Bits and Bobs

Payments Domain

Last updated