System Design
Architectural decisions that have an author, a date and a reason. Every pattern is read from the primary source — the text that first described it and the specification that says what it must do — never from retellings.
- Sections
- 6
- Articles
- 8
- SOURCES
- 67
Sections
Articles
Recommended order
The order is computed from the prerequisites declared in the materials themselves, not assigned by an editor. It is not a required syllabus: every article stands on its own, but in this sequence there is less going back.
Can be read on their own: Backend for Frontend: the layer that knows who is asking, A DI container: what it actually does for you — and how dishka differs from dependency-injector, Isolation levels: the price of SERIALIZABLE is retries, not a slow query, Load balancing: who picks the server, and what they know when they pick, Sharding: the key decides where every query goes, The transaction outbox: what it guarantees, what it does not, and what it costs
Knowledge graph
NON-LINEAR · PREREQUISITE AWARETopics are connected, and the connections here were not drawn by hand — they were counted: every article states what it builds on and what it sits next to, and the picture is assembled from those statements. A dashed circle is a topic the articles already call related but that has not been written yet.
9 · 7 nodes and edges
Edges as a list
- Consistent hashing: how many keys move when the membership changes — connects to: Sharding: the key decides where every query goes
- Backend for Frontend: the layer that knows who is asking — connects to: Load balancing: who picks the server, and what they know when they pick
- The stretched cache: why the analogy with the database is false — connects to: Two ways to build Valkey out of several nodes: Cluster and Sentinel
- Two ways to build Valkey out of several nodes: Cluster and Sentinel — connects to: Sharding: the key decides where every query goes, The stretched cache: why the analogy with the database is false
- Isolation levels: the price of SERIALIZABLE is retries, not a slow query — connects to: Sharding: the key decides where every query goes, The transaction outbox: what it guarantees, what it does not, and what it costs
- The transaction outbox: what it guarantees, what it does not, and what it costs — connects to: Isolation levels: the price of SERIALIZABLE is retries, not a slow query, Sharding: the key decides where every query goes
- Sharding: the key decides where every query goes — connects to: Consistent hashing: how many keys move when the membership changes, Isolation levels: the price of SERIALIZABLE is retries, not a slow query, The transaction outbox: what it guarantees, what it does not, and what it costs, Two ways to build Valkey out of several nodes: Cluster and Sentinel
- Load balancing: who picks the server, and what they know when they pick — connects to: Backend for Frontend: the layer that knows who is asking
No connections: di-containers