Skip to content

Architecture: add transactional outbox and background ERP worker #3

Description

@falltwo

Architecture: add transactional outbox and background ERP worker

Context

This is a future hardening item that depends on A′ atomic approval and idempotent execution being merged first. It does not represent an implemented capability and does not overlap Issue #1, which tracks L1/L2/L3 interface screens.

Scope

  • Persist an approved command/outbox record durably with the approval decision.
  • Add a background worker with conditional claim/lease, bounded retry, observable failure state, and recovery after process restart.
  • Reuse A′ operation_id, canonical action digest, resource version, and execution receipt as the business idempotency boundary.

Prerequisites

  • A′ protected purchase-order approval route is merged.
  • Unique operation/receipt constraints and same-database atomic PO execution are verified.
  • Direct execution of the protected PO action cannot bypass a valid approval context.

Acceptance criteria

  • Two workers cannot produce duplicate PO effects for one operation.
  • Worker termination before/after the business commit has an explainable, recoverable state.
  • Duplicate delivery returns the stored receipt without repeating the effect.
  • Retry limits, terminal failure state, and operator-visible diagnostics are tested.

Non-goals / claim boundary

  • This issue does not claim exactly-once delivery.
  • It does not imply all ERP writes are governed or production-ready.
  • It does not implement LangGraph pause/resume.

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions