# Process Manager

> Central coordinator for multi-step business processes — tracks state and drives each step.

- **Category**: Integration
- **Subcategory**: Message Routing
- **Canonical URL**: https://designpattern.fyi/patterns/process_manager/

---

## Description
Clean, reusable architecture pattern.


## Use Cases
E-commerce order fulfillment — Process Manager receives OrderPlaced, sends ReserveInventory command, waits for InventoryReserved event, sends ChargePayment command, waits for PaymentCharged event, sends CreateShipment command. Clear state machine, full auditability, central error handling.





## Trade-offs


### Advantages

- Full visibility into multi-step process state

- Centralizes error handling, retries, and compensating transactions

- Explicit state machine makes the business process inspectable and debuggable

- Easier to monitor and alert on stuck or failed processes




### Considerations & Drawbacks

- Process Manager is a central bottleneck — must be HA

- State persistence adds complexity and storage requirements

- Harder to scale than decentralized choreography

- Tight coupling between Process Manager and all participant services







---
**Reference**: [Original Source](https://www.enterpriseintegrationpatterns.com/patterns/messaging/ProcessManager.html)

