Distributed Systems Fundamentals
Understand why teams distribute computation, what they gain, and which failure modes appear immediately.
Open visual refresher →Browse the complete roadmap by category, or search for the problem you are trying to reason about.
33 topics
Understand why teams distribute computation, what they gain, and which failure modes appear immediately.
Open visual refresher →Understand what a network partition really forces you to choose—and what CAP does not say.
Open visual refresher →Reason about consistency and latency both during partitions and during ordinary healthy operation.
Open visual refresher →Choose the weakest consistency promise that still protects the product’s invariants and user expectations.
Open visual refresher →Reason about events when clocks disagree and messages arrive in different orders.
Open visual refresher →Copy state across machines without confusing more copies with stronger correctness.
Open visual refresher →Use overlapping read and write sets to reason about replica authority, freshness, and failure tolerance.
Open visual refresher →Agree on one sequence of operations despite node crashes, delayed messages, and network partitions.
Open visual refresher →Select one current coordinator and prevent stale leaders from continuing to act.
Open visual refresher →Partition keys across changing nodes while minimizing how much data moves when the cluster scales.
Open visual refresher →Split ordered keyspace into contiguous ranges for efficient scans and controllable ownership.
Open visual refresher →Move ownership safely as data, traffic, and cluster membership change.
Open visual refresher →Detect and relieve keys or shards that receive disproportionate traffic.
Open visual refresher →Coordinate one atomic outcome across independent participants—and understand the blocking cost.
Open visual refresher →Coordinate a long-running workflow with local commits and explicit compensation.
Open visual refresher →Serve consistent snapshots by retaining multiple committed versions of data.
Open visual refresher →Make retries and duplicate delivery converge on one durable business outcome.
Open visual refresher →Understand how write-optimized storage turns random updates into sequential writes and pays later through compaction.
Open visual refresher →Combine partitioning, replication, transactions, and routing into one data service.
Open visual refresher →Rewrite immutable storage files to reclaim space and control read amplification.
Open visual refresher →Preserve relational queries and transactions while distributing storage and execution.
Open visual refresher →Use partitioned append-only logs for durable event streams, replay, and independent consumer progress.
Open visual refresher →Understand what at-most-once, at-least-once, and effectively-once processing really promise.
Open visual refresher →Scale ordered log processing by assigning partitions across cooperating consumers.
Open visual refresher →Slow producers or shed work before queues and consumers become unstable.
Open visual refresher →Recover from transient failure without turning retries into a synchronized overload event.
Open visual refresher →Design for components and network paths failing independently while the rest of the system continues.
Open visual refresher →Stop repeated calls to an unhealthy dependency and probe recovery deliberately.
Open visual refresher →Reject lower-value work early so critical operations remain healthy during overload.
Open visual refresher →Serve traffic from multiple regions while making write ownership and conflicts explicit.
Open visual refresher →Copy data across regions while balancing latency, durability, locality, and consistency.
Open visual refresher →Turn disaster recovery into explicit data-loss and restoration objectives.
Open visual refresher →Merge concurrent updates using semantics that preserve the product's invariants.
Open visual refresher →