To solve this problem, the team decided to implement a Saga client-server architecture. A Saga is a design pattern that helps manage long-running business processes that involve multiple microservices.
| Pattern | Client blocks? | Server coupling | Best for | |---------|---------------|----------------|----------| | Sync request–response | Yes | Tight (timeout risk) | Short SAGAs (few steps) | | Async with polling | No | Loose | Medium-length SAGAs | | Async with callback/webhook | No | Loose | Long-running SAGAs | | Event-driven (client as event subscriber) | No | Very loose | Complex workflows | saga client server