Skip to main content

System Design References

A curated list of system design articles, architecture patterns, and engineering best practices.


Start here​

ResourceWhat it is
The System Design PrimerThe canonical free curriculum. Index of topics, a study guide by interview length, and seven fully worked designs (Pastebin, Twitter timeline, web crawler, Mint, key-value store, sales ranking, scaling to millions on AWS) plus object-oriented design solutions.
Latency numbers every programmer should knowThe gist the whole estimation habit is built on. Annotated locally in Latency Numbers.
Designs, lessons and advice from building large distributed systemsJeff Dean, LADIS 2009 — where those numbers originate.
CAP twelve years laterBrewer correcting the "pick two of three" reading. Summarised in CAP Theorem.
High ScalabilityReal architecture write-ups, ongoing.

Architecture & Patterns​

TopicLink
The LMAX ArchitectureMartin Fowler
CQRS Pattern: The Good, the Bad, and the UglyBetter Programming
Domain-Driven Design SeriesDev.to
How to Work with Exceptions in DDDSudonull
Agile Software Development: Principles, Patterns, and PracticesPDF

Microservices & Data​

Dealing with Data in Microservice Architectures​

PartTopicLink
1Share the DataDev.to
2Synchronous CallsDev.to
3ReplicationDev.to
4Event-Driven ArchitecturesDev.to

Other​

TopicLink
Building Scalable Subscription ServiceMedium
Payment Transaction Management in MicroservicesMercari Engineering
Why Uber Switched from Postgres to MySQLUber Blog

Messaging & Event Streaming​

TopicLink
RabbitMQ Exchanges, Routing Keys & BindingsCloudAMQP
Synchronous Request-Reply over KafkaCallista
When to Use Request-Response with KafkaKai Waehner
Confluent Parallel ConsumerConfluent Blog

Distributed Systems​

TopicLink
Designing a Distributed Job Scheduler (LeetCode)LeetCode Discussion
Designing a Distributed Job SchedulerLevel Up

Spring Ecosystem​

TopicLink
Spring Boot + Kafka + ProtobufGitHub
Spring Cloud Supported VersionsGitHub Wiki
Microservices with Spring Cloud + Docker (Netflix Stack)Dev Genius
Spring Security without WebSecurityConfigurerAdapterSpring Blog
Spring Boot OAuth2 with KeycloakMedium
Using Keycloak with Spring Boot 3.0Medium
Spring Boot with ReactJS (Gradle)YouTube
Scaling WebSockets in Spring ServicesMedium
Spring Boot REST API Error HandlingToptal
HikariCP Pool SizingGitHub Wiki

Observability​

TopicLink
ELK Stack from Scratch with DockerViblo
Distributed Tracing with Zipkin, Sleuth & ELKMedium

Data & Messaging​

TopicLink
Scalable System with RabbitMQ, Java & MySQLDev Genius
Using Postgres as a Message QueueJava Advent
Integrating Oracle and KafkaGitHub

Miscellaneous​

TopicLink
Mixing Java & PythonPDF
Python ZeebeGitHub