837 B
837 B
Decisions Log
ADR-1 — Use Redis for the job queue
Why: We needed a queue that survives process restarts. The in-memory array we started with lost jobs on every deploy.
Decision: All background jobs go through Redis lists via the Worker class. SETTLED.
We looked at beanstalkd but nobody on the team had operated it, and at Postgres-based queues but we did not want polling load on the main database.
ADR-2 — Ship as a single container
Why: Deploys kept drifting between the app host and the worker host.
Decision: App and worker ship in one container image; the entrypoint picks the role. SETTLED.
ADR-3 — Job payload schema versioning
Why: A payload shape change stranded old jobs in the queue.
Decision: OPEN — leaning toward an integer v field in every payload, not decided yet.