Define cancellation after some items have committed
Clients assume cancelling an import undoes all previous item updates.
- Focused work estimate
- 3h + prerequisites
- Priority in the scenario
- High
- Engineering practice
- State transitions · API semantics
Estimated field mix
- API design60%
- Distributed systems40%
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Review it, then add it to your workspace.
The board opens an editable draft; nothing is saved until you confirm it. Sign-in and workspace permissions apply, and Demo boards remain ephemeral.
Project context
A fictional catalog API needs to accept imports too large for one synchronous request. Partners need to distinguish accepted work, completed items, and recoverable failures.
Setup prerequisites
- Create a local API and worker double with synthetic catalog records and controlled interruption points.
Preceding work
Complete these dependencies, or supply their agreed outputs before taking this ticket.
- BAPIBULK-101 · Define the difference between accepted and completed bulk work
- BAPIBULK-102 · Bound bulk request size and record counts before admission
- BAPIBULK-103 · Create bulk operations with tenant-scoped idempotency
- BAPIBULK-104 · Return per-item problems without exposing other tenant records
- BAPIBULK-105 · Checkpoint item progress without changing retry outcomes
Acceptance criteria
- Document cancellation as stopping future work unless compensation exists.
- Preserve committed outcomes.
- Resolve cancellation-versus-completion races explicitly.
Implementation constraints
- Do not silently roll back unrelated later changes.
Verification to include
- Cancel after two items commit.
- Race cancellation with final completion and produce one terminal state.
Deliverables
- Cancellation contract.
Rollout and recovery
Expose committed counts before accepting cancellation.
Value of the work
For the engineer: Practice asynchronous resource contracts, partial outcomes, and idempotent operations.
For the team: Provide predictable bulk integration behavior without ambiguous success or repeated effects.
Evidence boundaries
Outcome Evidence: Tests, patches, and runbooks are requested deliverables. They become Outcome Evidence only through a qualified Mission and immutable Evidence IDs.
Ownership Evidence: Independent adaptation must be observed under a declared verification policy and cite immutable Evidence IDs. Completing a planning ticket establishes no Ownership Evidence.