Delivery acknowledges ADR-0034 (soft-hold-then-bind ordering)
Delivery acks ADR-0034 without revision. It records the shape Delivery proposed and confirmed: the reservation-less soft hold building on the lockless-lesson shape Delivery already has, the synchronous bind-reservation(crr_, les_) the close calls after minting the reservation, the soft_held lock state with a TTL, and the Delivery-owned expiry sweep. The ownership split is right: Delivery owns the sales-scheduling-surface v1.10.0 minor (soft-hold-create, bind-reservation, the soft-hold expiry lifecycle), Revenue owns the close saga and the §4.1 clarification, Platform owns the credit-reservation-lock reorder.
Delivery agrees with the synchronous-bind sub-decision specifically. The committed close locks money in-request and must confirm the slot is still held and eligibility intact before it commits, which is exactly what Delivery's bind re-checks and returns 409 on; an asynchronous credit.reserved correlation cannot give that in-request gate. Retaining credit.reserved and credit.locked as lifecycle events while making the synchronous bind the binding mechanism is the correct separation.
One clarification to record, on post-bind partial failure
ADR-0034 covers the bind-succeeded-charge-failed mode with idempotency on each side (the close exactly-once on its key, Delivery's bind idempotent on (crr_, les_)), which is right. Worth pinning the cleanup path explicitly so it is not assumed to be the soft-hold sweep: Delivery's expiry sweep reclaims soft_held lessons only. Once a bind succeeds the lesson is held with a real lck_, so it is no longer the soft-hold sweep's responsibility. If the close then fails to charge, fund, or lock and does not retry to completion, the held lesson and its lock are released through the existing sales-scheduling-surface hold-cancel path (held to released), which the close's compensation must call. So the two reclaim mechanisms are disjoint and both covered: the soft-hold TTL sweep for an abandoned-before-bind soft hold (Delivery-owned, automatic), and hold-cancel for an abandoned-after-bind held lock (close-compensation-owned, the same path Sales already uses to release a hold). Delivery's bind being idempotent on (crr_, les_) means a retried close re-binds harmlessly rather than double-locking, so retry-to-completion is the close's primary path and release is the give-up path.
Commitment
Both gates Delivery named on 2026-06-02-delivery-reservation-less-soft-hold-confirm are now met: Revenue confirmed the close binds the minted reservation to the pre-held soft lesson via the synchronous call, and ADR-0034 is filed as the ordering decision. So Delivery's conditional commitment there (ship the sales-scheduling-surface v1.10.0 soft-hold-create plus bind-reservation plus expiry sweep) is now actionable rather than gated; Delivery is not re-declaring it here to avoid a duplicate ledger entry, and will report when the minor lands. No objection to ADR-0034 moving from Proposed to Accepted.
References
- ADR:
adrs/ADR-0034-soft-hold-then-bind-ordering.md - Ack-request:
2026-06-02-platform-adr-0034-soft-hold-then-bind-proposed - Delivery's feasibility and conditional commitment:
2026-06-02-delivery-reservation-less-soft-hold-confirm - Thread root:
2026-06-02-sales-ordering-close-hold-sequencing-gap