Skip to content

DOM-PFM-OPS-001Background Job

Markdown

DOM-PFM-OPS-001

Background Job

Markdown
  • DocumentDraft
  • ImplementationObserved

Planning

Specified by
CON-PFM-OPS-001

Design

Owned by
SVC-PFM-OPS-jobs

KindDomain objectProduct areaPlatformModuleOperational RecordsRevision1

Read atservices-platform ad3f6a65macroservice-libraries 54536a44react-console baf6dae3

Relationships

ToCardinalityOwnershipCrosses a serviceOn archive or delete
DOM-PFM-OPS-004one workspace activation job to many workspace applicationsThe related owner maintains the link; the provisioning job’s last step writes the core application rowsno
DOM-PFM-OPS-003one licensing change to one access-refresh jobThe related owner maintains the link; a licensing write submits the refresh job owned by Securityno

Invariants

InvariantProtectsEnforced atProvenance
INV-DOM-PFM-OPS-001-01
One submission identity can identify only one job within a kind.
service, databaseobserved
INV-DOM-PFM-OPS-001-02
Only the five declared job statuses are valid, with settlement time present exactly for final status.
databaseobserved
INV-DOM-PFM-OPS-001-03
Final jobs and steps cannot acquire another outcome; late reports for settled jobs are logged without changing them.
servicetest
INV-DOM-PFM-OPS-001-04
Progress is bounded in the database; step reporting rejects earlier activity times and decreasing progress.
service, databasetest
INV-DOM-PFM-OPS-001-05
A step report commits its step record, event and job summary together.
serviceobserved
INV-DOM-PFM-OPS-001-06
The writer allocates increasing event sequences, with database uniqueness and positivity checks; ordinary engine paths do not edit history.
database, serviceobserved
INV-DOM-PFM-OPS-001-07
Reconciliation cannot retain success when any step is running or retrying.
serviceobserved
INV-DOM-PFM-OPS-001-08
Every registered kind declares a business failure effect or explicitly declares no effect.
servicetest
services-platform:modules/jobs/tests/unit/job-failure-consequences.spec.js#declares a failure consequence, or states there is none, for every registered kind
INV-DOM-PFM-OPS-001-09
The documented execution-input obligation excludes secrets and customer content, although arbitrary domain inputs are not inspected by the engine.
documented
services-platform:docs/jobs.md#What may cross the asynchronous boundary
INV-DOM-PFM-OPS-001-10
Retry requires a final predecessor of a retryable kind and creates a separate linked job.
servicetest
macroservice-libraries:packages/jobs/src/engine/job-engine.spec.ts#refuses to create a retry of a kind that is not retryable
INV-DOM-PFM-OPS-001-11
Each job and outcome has at most one notice row; delivered and suppressed rows reject new claims.
database, serviceobserved
INV-DOM-PFM-OPS-001-12
Job API responses omit the orchestration handle and row version.
apitest
services-platform:modules/jobs/tests/e2e/jobs.e2e.spec.js#never puts the execution handle or the row version on the wire

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.