Three Common Patterns for Distributed Transactions — 2PC, Saga, and Outbox

Once you adopt microservices, you almost inevitably run into the question: **how do you keep writes consistent when they span multiple databases, or span a database and a message broker?** This articl...