Consistency is Consistently Undervalued
The author argues that when teams adopt microservices or non-ACID databases, the most underrated loss is the transaction. Using a single constraint — one user must have exactly one profile — he shows how a single-database transaction gives atomicity and isolation for free: both rows are created together or not at all, and no other process ever observes a half-written state. Split users and profiles into two services and all of that disappears. He walks through the failure paths one by one: a failed profile write leaves an orphan user; the compensating delete can itself fail, or the process can die mid-way; even with 100% reliable services, concurrent threads can see the user without the profile and create a duplicate; foreign keys no longer hold, so profiles can point at deleted or changed user IDs; periodic cleanup of dangling rows still leaves a window of inconsistency. Application-layer compensation, he concludes, amounts to rebuilding a half-working, buggy distributed ACID database.