A development team is building an order-fulfillment process that runs a fixed sequence of steps: reserve inventory, charge the customer, and schedule shipping. The business team needs visibility into where each order is in the process, per-step retries with error handling, and compensation logic that runs when a step fails partway through. Which approach should the team use?
Choose one.
Choosing between orchestration and choreography for multi-step workflows: a central coordinator (AWS Step Functions) versus services reacting to events.
The scenario lists the classic orchestration cues: a defined sequence, visibility into where each order is, per-step error handling, and compensation on failure. Step Functions holds the workflow state centrally and provides built-in retries, catch handling, and compensation paths, which is exactly what the requirements describe. SNS choreography maximizes service independence but deliberately has no central controller, so end-to-end visibility and coordinated compensation would have to be built by hand. SQS chaining buffers each hop but still leaves no owner of the overall state. Direct synchronous invocation is the tightly coupled anti-pattern — the caller shares fate with every downstream service and must implement all coordination logic itself.
- Identify that the process is a multi-step business workflow with a fixed sequence.
- Spot the orchestration cues: visibility into progress, per-step retries, and compensation on failure.
- Recall that on AWS, orchestration means Step Functions, which holds workflow state centrally.
- Eliminate choreography (SNS) and queue chaining because neither owns end-to-end state, and synchronous chaining because it tightly couples the services.
Exam tip: When a scenario needs visibility, per-step error handling, or compensation across a multi-step process, choose orchestration with Step Functions; choreography is for independent services reacting to events.
Application Development Patterns on AWS: Architecture, APIs and Messaging — the lesson that teaches this.