Distributed Systems

General material on partial failure, coordination and distributed reasoning.

6Questions
23Flashcards
24Terms
Terminology

24 terms in this topic

concept

Backpressure

A mechanism by which a component under load tells its callers to slow down, rather than accepting work it cannot complete.

pattern

Bulkhead

Partitioning resources so that exhaustion caused by one dependency or tenant cannot starve the others.

concept

CAP Theorem

During a network partition a distributed system must choose between consistency and availability; it cannot have both.

pattern

Circuit Breaker

A proxy that stops calling a failing dependency after a failure threshold, failing fast instead, and periodically tests whether it has recovered.

concept

Consistent Hashing

A hashing scheme where adding or removing a node remaps only a small fraction of keys, instead of nearly all of them.

tool

Event Stream

An append-only, retained log of events that many independent consumers read at their own position, and can re-read.

concept

Eventual Consistency

A guarantee that replicas will converge to the same value if updates stop, with no bound on how long reads may be stale.

pattern

Exponential Backoff

Increasing the wait between retries geometrically, with random jitter, so that failures do not synchronise into a stampede.

concept

Fan-Out

One incoming request causing many outgoing ones, which multiplies both load and tail latency.

concept

Fault Tolerance

Continuing to operate correctly despite the failure of some components, by design rather than by luck.

practice

Graceful Degradation

Continuing to deliver reduced but useful function when a dependency fails, instead of failing the whole request.

concept

Idempotency

The property that performing an operation many times has the same effect as performing it once.

pattern

Leader Election

The process by which a group of nodes agrees which one of them is currently in charge of a task that must not run twice.

pattern

Load Shedding

Deliberately rejecting a portion of incoming work during overload so that the remainder can be served correctly.

tool

Message Queue

A store that holds messages until a consumer processes them, decoupling producer availability and rate from consumer availability and rate.

concept

Quorum

A minimum number of nodes that must acknowledge an operation for it to count, chosen so that read and write sets are guaranteed to overlap.

pattern

Saga

A sequence of local transactions across services where each step has a compensating action that semantically undoes it if a later step fails.

concept

Scalability

The ability to handle growing load by adding resources, ideally with cost rising no faster than the load.

concept

Service Discovery

The mechanism by which a caller finds a currently healthy network address for a service whose instances are ephemeral.

pattern

Shuffle Sharding

Assigning each customer a random combination of workers rather than a fixed shard, so that any two customers rarely share their whole set.

concept

Split Brain

A partition in which two halves of a cluster each believe they are authoritative, and both accept writes.

concept

Thundering Herd

A large number of clients acting simultaneously because they were synchronised by a shared event, producing a spike that the steady-state design neve…

pattern

Timeout Budget

Assigning a request an overall deadline at the edge and passing the remaining time down each hop, so no service works on something already out of time.

protocol

Two-Phase Commit

A blocking protocol for atomic commit across several resources: a coordinator asks all participants to prepare, then tells them all to commit or abort.

Distributed Systems

Neighbouring topics

CAP & PACELC

What you must give up during a partition, and the latency choice the rest of the time.

No content yet

Consistency Models

Linearizable, sequential, causal, eventual, and the session guarantees between them.

No content yet

Idempotency

Making an operation safe to repeat, because a client that times out cannot know.

No content yet

Retries & Backoff

Exponential backoff, jitter, retry budgets, and how retries become the outage.

No content yet

Timeouts & Deadlines

Per-hop timeouts that do not compose, and the deadline budget that replaces them.

No content yet

Circuit Breakers

Failing fast on a broken dependency, and what you fail fast to.

No content yet

Backpressure & Flow Control

Telling callers to slow down instead of buffering into congestion collapse.

No content yet

Load Shedding

Rejecting some work deliberately so the rest can be served correctly.

No content yet

Bulkheads & Isolation

Partitioning resources so one dependency cannot starve the others.

No content yet

Leader Election

Agreeing who is in charge, and fencing the one who no longer is.

No content yet

Consensus Protocols

Raft, Paxos and quorums — what they guarantee and what they cost.

No content yet

Distributed Locking

Mutual exclusion across machines, and why it is harder than it looks.

No content yet

Distributed Transactions

Two-phase commit, its blocking failure mode, and when it is still reasonable.

No content yet

Sagas & Compensation

Replacing atomicity with semantic undo, and ordering the irreversible steps last.

No content yet

Service Discovery

Finding a healthy address for something whose instances are ephemeral.

No content yet

Messaging & Queues

Decoupling producer from consumer, and the semantics that come with it.

No content yet

Event Streaming

Retained ordered logs, consumer offsets, partitions and replay.

No content yet

Clocks & Ordering

Why wall clocks lie, and how logical clocks and versions restore order.

No content yet

Failure Modes

Slow rather than down, partial, grey, and failing while reporting success.

No content yet