Decompose: Documented concurrency contract (throughput, per-request bounds, failure semantics) — Phase 3: Failure semantics (questions 7, plus the "what if stage N fails?" case) #71
Labels
No labels
blocked:children
blocked:depends-101
blocked:depends-103
blocked:depends-104
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:preflight
bug
chore
feature-request
in-progress
lint-cleanup
needs-decompose
performance
quality
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/easystitch#71
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase 3: Failure semantics (questions 7, plus the "what if stage N fails?" case)
Goal: Lock the failure-mode behavior.
Specifically:
the response is 503 with body
{"error": "...", "failed_stage": "...", "completed_stages": [...], "request_id": "..."}. Thepipeline cleans up any partial state (temp files, half-built
stitch objects).
upload, unsupported format)? Answer: 400 Bad Request with a
specific error code per failure mode (NOT 500).
with
request_id,stage,error,stack(configurable).Files:
docs/concurrency.md(add failure-mode section)docs/service/operations.md(cross-link from the errorresponse shape)
Acceptance:
asserts the partial-state cleanup happened (no orphan temp files).
Depends on: P1, P2.
Out of scope
cancellation logic. Those go in the relevant service tickets
(issue #31 P2 for the handlers, P5 for the worker pool).
A/B testing, blue-green) — separate doc, separate ticket.
If multi-user support is added later, a rate-limit section can be
added to
docs/concurrency.md.Decomposed from easystitch#43