Skip to content

Feature: Add Transaction Outbox and Job Delivery Foundation #122

Description

@3m1n3nc3

Description

Create transaction and outbox primitives for work spanning PostgreSQL, queues, notifications, and blockchain providers.

File Location

learnault-api/prisma/schema.prisma, learnault-api/src/lib/transactions/, learnault-api/src/jobs/, and migrations

Design Reference

API Roadmap Phase 0: Add Transaction Outbox and Job Delivery Foundation.

Dependencies

Tasks

  • Add outbox event and job-attempt models with stable IDs and typed status
  • Write domain changes and outbox events in one transaction
  • Implement lease, retry, backoff, dead-letter, and idempotent completion
  • Recover abandoned leases and stop workers gracefully
  • Version and validate event payloads
  • Test rollback, duplicate delivery, crashes, retries, and dead letters

Acceptance Criteria

  • Rolled-back domain changes emit no event
  • Duplicate processing creates no duplicate side effect
  • Abandoned work becomes retryable
  • Lifecycle tests and metrics pass

Verification Evidence

  • Attach migration output and rollback, duplicate, crash, and retry tests

Difficulty

Advanced

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions