jargon

Comparison

Distributed monolithvsPartial failure

Distributed monolith

you split it into six services and still have to deploy all six together, in the right order.

A set of services with all of the operational costs of being distributed and none of the independence that was supposed to justify them. It is what you get when services are split by technical layer or by shared database rather than by ownership and change. It is the most common outcome of a microservices migration and the reason to insist on the deployment question early, because the diagnosis is easy after a year and expensive.

Full entry →

Partial failure

the call timed out and you genuinely do not know whether the other side did the work or not.

The defining property of distributed systems: an operation can fail in a way that leaves its outcome unknown to the caller. Local function calls do not do this, which is why treating a remote call like a local one is the root of so many bugs. Idempotency keys and reconciliation exist because you cannot resolve the ambiguity, only make it harmless.

Full entry →

Related comparisons