Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Microservice Communication Styles: Sync Request/Response, Async Events and Temporal Coupling
If the caller must wait for the answer, communication is synchronous however much await the code has, and it binds two services through temporal coupling; if the answer isn't needed now, prefer an event or a local copy. A comparison of REST, gRPC (including deadlines reaching the server) and messages, a checkout simulation while Inventory is being deployed, the command versus event split, and a decision table.
Why Messaging? From Synchronous Call Chains to Asynchronous Communication
A synchronous HTTP chain requires every dependency to be up at the same moment; dropping work on a queue breaks that temporal coupling and shields checkout from an email provider outage. Chained availability, an in-process queue with Channel<T>, the broker's role as buffer and load leveler, Web-Queue-Worker, and the price of asynchrony, with real output.