Best-Effort One-Phase Commit and the Dual-Write Problem

Distributed applications frequently need to coordinate operations across multiple transactional resources. A service might update a database and acknowledge a message, or persist a record and invoke a remote API. The challenge is that these operations are independent. A successful database commit does not guarantee that a message acknowledgement or remote API call will succeed. One commonly adopted strategy is best-effort one-phase commit (1PC). Rather than introducing a distributed transaction coordinator, it relies on careful transaction ordering and idempotent processing to reduce the risk of inconsistent outcomes. ...

May 15, 2024 · 12 min · Kai Niemi

Multi-Active Systems and Multi-Region Architectures

Several business drivers can justify adopting a multi-region deployment strategy: Business continuity: Maintain service availability during data centre or regional disruptions. Customer experience: Serve customers worldwide with predictable, low latency. Scalability: Adapt capacity to different markets and changing traffic volumes. Regulatory compliance: Address data residency, operational resilience, and concentration risk requirements. None of this is free. A multi-region deployment typically costs more than a single-region one, and that cost has to be weighed against the availability and performance it buys. ...

October 19, 2022 · 10 min · Kai Niemi