Checkout lifecycle
The Lifecycle
Transitions Explained
The cart starts open. Placement performs remote preparation first, then moves through preparing to placed within a single transaction. Failure rolls that transaction back to the still-open cart; abandonment instead releases holds and ends shopping.
What Cannot Happen
Terminal carts have no outgoing service transitions. Direct placement from open is absent from the map. Cancelled and the explicit preparing-to-open path are declared without current committed callers.
Concurrency and Timing
The cart lock orders placement and edits. Expiry discovery runs every minute in bounded pages, so backlog can delay processing. The intended cleanup of finished carts is not implemented.