An e-commerce checkout orchestrates inventory reserve, payment, fraud review with 24-hour human approval, and shipment across Lambda, SQS, and third-party APIs. Timeouts and partial failures cause double charges and lost orders. Engineers need retries, parallel steps, and durable state across days. Which durable execution pattern coordinates the multi-step checkout reliably?
Select an answer to reveal the explanation.
Short Explanation
You’re juggling payments that can’t be dropped mid-air. Step Functions remembers every step, waits patiently, and retries gracefully.
Full Explanation
Step Functions Standard fits because it keeps durable JSON state for up to a year with retries, catch, parallel branches, wait states, and task-token callbacks that safely pause for third-party APIs and the 24-hour human fraud review while centralizing Lambda and SQS coordination to avoid double charges and lost orders. The Express workflow approach fails by duration because although it offers retries and fast high-volume orchestration, execution is limited to five minutes and cannot suspend across days for human approval. The EventBridge choreography with DynamoDB saga approach fails by coordination because while events, Lambda retries, and persistent tables support decoupled durable steps, decentralized choreography lacks native parallel joins, ordered waits, and callback suspension, weakening control over timeouts and idempotency. The SQS FIFO with Lambda and DynamoDB tracking approach fails by orchestration because although FIFO ordering, batch retries with dead-letter queues, and persistent progress provide reliability, queues cannot natively fork and join parallel branches or pause for callbacks without custom polling and visibility-timeout workarounds. For exams, Standard versus Express is tested by duration and audit needs rather than speed, so any approval spanning hours points to Standard. As a practical check, confirm the definition contains Parallel, Wait, and task-token fields and payment tasks use idempotency keys with history showing safe retries.