24 lines
837 B
Markdown
24 lines
837 B
Markdown
|
|
# 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.
|