US02-02 — Persist and Coordinate Durable Jobs #9

Closed
opened 2026-07-13 13:10:39 +02:00 by domverse · 3 comments
Owner

Source specification: delivery_backlog/stories/US02-02-durable-jobs.md

US02-02 — Persist and Coordinate Durable Jobs

Epic: E02

As an operator, I want jobs and item progress stored durably so work can resume after
browser, API, or worker interruption.

Acceptance criteria

  • Job, item, event, attempt, progress, cancellation, and terminal states are persisted.
  • Commands support idempotency keys and atomic state transitions.
  • Prerequisites and one-mutating-job policy produce explicit blockers.
  • Progress derives from durable item state rather than browser memory.

Automated tests

  • State-machine/property tests reject invalid transitions and duplicate terminal state.
  • Repository tests cover concurrent idempotent submission and restart persistence.

Dependencies

  • US01-02
Source specification: [delivery_backlog/stories/US02-02-durable-jobs.md](https://git.domverse-berlin.eu/domverse/photoanalyzer/src/branch/main/delivery_backlog/stories/US02-02-durable-jobs.md) # US02-02 — Persist and Coordinate Durable Jobs Epic: [E02](https://git.domverse-berlin.eu/domverse/photoanalyzer/src/branch/main/delivery_backlog/E02-unified-workflow-shell.md) As an operator, I want jobs and item progress stored durably so work can resume after browser, API, or worker interruption. ## Acceptance criteria - Job, item, event, attempt, progress, cancellation, and terminal states are persisted. - Commands support idempotency keys and atomic state transitions. - Prerequisites and one-mutating-job policy produce explicit blockers. - Progress derives from durable item state rather than browser memory. ## Automated tests - State-machine/property tests reject invalid transitions and duplicate terminal state. - Repository tests cover concurrent idempotent submission and restart persistence. ## Dependencies - US01-02
domverse added this to the E02 — Unified Workflow Shell milestone 2026-07-13 13:10:39 +02:00
domverse added the area/databasetype/featurepriority/normalarea/backend labels 2026-07-13 13:10:39 +02:00
domverse added a new dependency 2026-07-13 13:11:17 +02:00
domverse added a new dependency 2026-07-13 13:11:17 +02:00
domverse added a new dependency 2026-07-13 13:11:18 +02:00
domverse added a new dependency 2026-07-13 13:11:19 +02:00
domverse added this to the Photo Analyzer Delivery project 2026-07-13 13:19:44 +02:00
domverse added the status/backlog label 2026-07-13 13:52:45 +02:00
domverse added status/in-progress and removed status/backlog labels 2026-07-15 22:38:41 +02:00
domverse self-assigned this 2026-07-15 22:38:41 +02:00
Author
Owner

Claimed for implementation on branch us/US02-02-persist-and-coordinate-durable-jobs.

Claimed for implementation on branch `us/US02-02-persist-and-coordinate-durable-jobs`.
domverse added status/review and removed status/in-progress labels 2026-07-15 22:47:00 +02:00
Author
Owner

Submitted for review: #55

Tests passed:

  • work_item/scripts/python -m unittest discover -s work_item/tests -v
  • work_item/scripts/python -m pytest tests -q
  • work_item/scripts/python -m pytest tests/unit tests/integration -q
Submitted for review: https://git.domverse-berlin.eu/domverse/photoanalyzer/pulls/55 Tests passed: - `work_item/scripts/python -m unittest discover -s work_item/tests -v` - `work_item/scripts/python -m pytest tests -q` - `work_item/scripts/python -m pytest tests/unit tests/integration -q`
domverse added status/done and removed status/review labels 2026-07-15 22:47:16 +02:00
Author
Owner

Completed and merged via PR #55.

Completed and merged via PR #55.
domverse moved this to Done in Photo Analyzer Delivery on 2026-08-16 11:58:15 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: domverse/photoanalyzer#9