docs(jobs): concurrent use means goroutines, not processes #536
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!536
Loading…
Reference in a new issue
No description provided.
Delete branch "eng/concurrent-means-goroutines"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
One line, and it is the sentence that produced #488.
JobStore's contract said an implementation "must be safe for concurrent use", unqualified. To a reader meeting the interface, that reads as safe across processes — and that is close to the reasoning that put a second replica on the table: a database was provisioned per lane, the interface promised concurrency safety, and nothing in the code said one process was assumed.It means goroutines inside one process.
What this is not
Not new information.
docs/sirens-echo-jobs-single-process.mdalready records the process-local mutex, the absence of any SQL claiming strategy, and what a second replica would actually break. This is the code saying the same thing where a reader meets it, rather than only where a reader might go looking.I filed #535 claiming that documentation did not exist. It does — written at 07:56 today, and linked from the very section of
sirens-echo-jobs.mdI had quoted. I read the paragraph and not the link. The issue carries the correction, and the proposed doc split turned out to be unnecessary, sosirens-echo-jobs.mdis untouched.That doc is also sharper than my own answer on #488 was. I said two replicas would double-run jobs; it points out the queue is an in-process channel, so they would instead each hold jobs the other cannot see — a status read or cancel routed to the wrong replica finds nothing. Quieter, and worse.
What is kept
The durability half of the contract. That clause was not the misleading part, and dropping it while fixing a different phrase would trade one gap for another — I did exactly that in my first attempt and put it back.
closes #535