The 'synchrony budget' is a mental model for distributed service design: minimize synchronous inter-service calls as much as possible, reserving them only for cases where they are truly necessary. Synchronous calls increase latency and reduce availability by coupling your service's uptime to that of its dependencies. Using an e-commerce order service as an example, the post walks through when to prefer async communication (shipment notifications, inventory data via change feeds) versus when synchronous calls may be justified (payment processing). Patterns like the outbox pattern, CDC with Debezium, Kafka-based event feeds, and stream processing with Apache Flink are discussed as tools for enabling asynchronous flows. The key trade-off acknowledged is eventual consistency, but business reality often tolerates this better than developers assume.
Sort: