Coupling vs. coordination cost
Where you meet it: 2PC vs. sagas, schema contracts vs. schema-on-read.
What it is
Every mechanism here was buying decoupling. But decoupling is not free. It is relocated coupling. You never remove the dependency between producer and consumer. You move it somewhere you would rather have it. (This is the same law as "costs are conserved and relocated": a cost is never removed, only moved to another place, time or person.)
From Data Movement › The whole domain
Sharing a queue is sharing a fate; the coupling is created by the queue, not by the work. Two requests with nothing in common become mutually dependent the moment they share a FIFO, a lock, a pool or a partition. The strength of the coupling is the ratio of their costs, not their number. Every fix is one of exactly two moves: partition the resource, or equalize the work.
From Scheduling & Workload Management › Head-of-line and inversion
Where it appears
In 16 mechanisms. Each says what the mechanism is about, then how this trade-off shows up there, in its own words.
- Data Movement
How do records cross between two systems that have independent rates, independent availability and independent lifetimes, and what are you willing to lose when the assumption underneath the crossing breaks?
Coupling (how much two systems must know about each other). Request/response and publish/subscribe differ mainly in addressing, which is a form of coupling. The expensive coordination questions (two-phase commit, data contracts) live elsewhere.
Read it inWhat changed: from one machine to twoData movement, stepped back
- Storage: Physical Organization
What should sit next to what, given that I must decide at write time and find out at read time?
The derivation is a causal chain, not a feature list: it gave up exactly the operations that need coordination.
Read it inObject storage and the lakehouse
- Core Data Structures
How do we choose a data structure when the real cost is set by the hardware, not by Big-O?
The structure is chosen for its coordination profile, not its lookup profile.
Read it inThe currency is coordinationTries, ART and skip lists
- Encoding, Serialization & Compression
What do we turn our values into when we turn them into bytes, and what does that choice cost?
Every byte that explains the data is a byte that is not the data.
Read it inBytes become an outputSerialization: where the description lives
- Distributed Systems Coordination
Who is allowed to decide, and how does everyone else learn the decision without asking?
Rule 1: the control plane must not be synchronously on the data path.
Read it inControl plane and data plane
- Emergent Failure Dynamics
What happens when nothing is broken, every component is healthy, and the system's own response to stress makes the stress worse?
So the count of hard dependencies is a budget, spent whether or not you track it.
Read it inDependency cascade
- Scheduling & Workload Management
Which work runs now, which work waits, and who pays for the waiting?
> Coupling in the workload becomes atomicity in the control plane, paid for in hoarded idle capacity.
Read it inGang schedulingRack and zone awareness
- Cost Mechanics
What is metered, and what is the smallest increment you are charged for?
The price is that every read now crosses a network.
Read it inSeparation of storage and compute
- Streaming
What does it cost to remember, when the input never ends?
This is the single strongest argument for disaggregated state (remote state): it makes the actuator cheap, which changes the control problem rather than merely improving a constant.
Read it inDynamic scaling of stateful operators
- Change Data Capture & Incremental Processing
What does it cost to know what changed, and is that cheaper than not needing to know?
Principle: a private implementation detail, once consumed externally, becomes a public interface its owner never agreed to maintain.
Read it inLog-based CDC
- Data Modeling
What does one row mean, who is allowed to change that answer, and what breaks downstream when they do?
That is a read-modify-write against shared state in the middle of an otherwise parallel load: two parallel loaders must not both create a new key for the same new customer.
Read it inLate arrivals and surrogate keys
- Schema Management & Evolution
What happens when the shape of your data changes on its own schedule, and nobody can change the readers, the writers and the old data at the same moment?
Cache the decode; keep only registration synchronous.
Read it inStructure becomes a variableRegistry and subject strategies
- Data Quality & Validation
How do you check that data is right, when "right" is a claim about the world and not about the bytes?
One line: shared definition removes logic skew; only shared execution removes timing skew; everything else becomes a freshness metric that you now have to watch.
- Orchestration & Workflow
How do you make unreliable, unobservable, irreversible side effects behave like a pure function of a time interval?
Dependency graphs are cheap; dependency contracts are not.
Read it inOrchestration versus choreography: the first forkCross-DAG and cross-system dependenciesDataset-aware scheduling
- Security & Privacy
How do you protect data from someone who watches your design and then chooses how to attack it?
A secret that travels is, at the moment it travels, held by two parties.
Read it inAuthenticationProtection gaps and residencyThe first adaptive adversary
- Interfaces & Formats
What can two parties agree on when they cannot talk to each other?
In one sentence: agreement buys framing and compactness; the only question left is whether the agreement travels with the data or is kept somewhere you must not lose.
Read it inRow binary formats: Avro, Protobuf, ThriftThe relationship outlives every conversation
Related
Made on the same pages most often.