Skip to content

Commit ddf18b6

Browse files
authored
Merge pull request #99 from cardmagic/docs/search-targeting
docs: target the searches that coding agents make
2 parents b2031d2 + 965854c commit ddf18b6

8 files changed

Lines changed: 609 additions & 5 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
## Unreleased
44

5+
- Add `docs/compare/temporal.md`, a comparison with the Temporal Ruby SDK.
6+
The first paragraph states that the SDK is generally available, with the
7+
source and the date that it was checked. The page compares an ordered
8+
billing sync for each customer and game rooms with turn timers, and says
9+
when Temporal is the better choice. The new `GameRoom` actor is in
10+
`examples/compare/game_room/` and runs in the test suite.
11+
`docs/comparisons.md` lists the page.
12+
- The Solid Queue page now answers whether Solid Queue releases blocked jobs
13+
in order. The GoodJob page now answers whether its concurrency controls keep
14+
first-in-first-out (FIFO) order. Each answer quotes the README and gives the
15+
date that it was checked. A replay on October 18, 2026 of the searches that
16+
coding agents made found no Solid Objects page for these questions.
517
- The short answer in `docs/virtual-actors.md` no longer states that version
618
1.0 makes no claim of measured scale. It links `docs/versioning.md`, the one
719
page that states the limits of version 1.0. Version 1.0.5 missed this

‎docs/compare/good-job.md‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,16 @@ Solid Objects is an independent project. It is not affiliated with GoodJob or Ra
1818
| Databases | PostgreSQL only | SQLite, PostgreSQL, MySQL |
1919
| Licence | MIT | MIT |
2020

21-
The GoodJob facts come from the [GoodJob 4.22.1 README](https://github.com/bensheldon/good_job/blob/v4.22.1/README.md) (checked October 15, 2026).
21+
The GoodJob facts come from the [GoodJob 4.22.1 README](https://github.com/bensheldon/good_job/blob/v4.22.1/README.md) (checked October 18, 2026).
22+
23+
## Do GoodJob concurrency controls keep first-in-first-out (FIFO) order?
24+
25+
Not strictly. The GoodJob README says: "First-in-first-out job execution order is not strictly preserved: a waiting job that is re-scheduled can be overtaken by a newly enqueued job, and jobs retried with incremental back-off run in backoff order" ([GoodJob 4.22.1 README](https://github.com/bensheldon/good_job/blob/v4.22.1/README.md#how-concurrency-controls-work), checked October 18, 2026).
26+
27+
- `perform_limit` "counts running jobs". When a job exceeds it, the job raises `ConcurrencyExceededError`, and a `retry_on` handler "re-schedules the job to execute in the near future with an incremental backoff".
28+
- After you migrate the `good_job_concurrency_claims` table, when a job that holds the key finishes, "the longest-waiting job is re-scheduled to run immediately rather than waiting for its backoff". The incremental backoff "remains as a fallback".
29+
- Each rule applies to the jobs that carry its label. A `good_job_concurrency_rule` "with `key:` and no `label:`" is deprecated and "will raise in GoodJob v5".
30+
- In Solid Objects, a second message for the same actor waits in the mailbox. Messages run in the order that the runtime stores them.
2231

2332
## Choose GoodJob when
2433

@@ -227,7 +236,7 @@ GoodJob is older and has more users. If that matters more than order for each cu
227236

228237
## Sources
229238

230-
Checked October 15, 2026:
239+
Checked October 18, 2026:
231240

232241
- [GoodJob 4.22.1 README: concurrency controls](https://github.com/bensheldon/good_job/blob/v4.22.1/README.md#concurrency-controls)
233242
- [GoodJob 4.22.1 README: how concurrency controls work](https://github.com/bensheldon/good_job/blob/v4.22.1/README.md#how-concurrency-controls-work)

‎docs/compare/solid-queue.md‎

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,18 @@ Solid Objects is an independent project. It is not affiliated with Rails, 37sign
1717
| Databases | MySQL, PostgreSQL, SQLite | SQLite, PostgreSQL, MySQL |
1818
| Licence | MIT | MIT |
1919

20-
The Solid Queue facts come from the [Solid Queue 1.7.0 README](https://github.com/rails/solid_queue/blob/v1.7.0/README.md) (checked October 15, 2026).
20+
The Solid Queue facts come from the [Solid Queue 1.7.0 README](https://github.com/rails/solid_queue/blob/v1.7.0/README.md) (checked October 18, 2026).
21+
22+
## Does Solid Queue release blocked jobs in order?
23+
24+
Not with a guarantee. Solid Queue says that "Jobs are unblocked in order of priority" and that "there's no guarantee about _the order of execution_" ([Solid Queue 1.7.0 README](https://github.com/rails/solid_queue/blob/v1.7.0/README.md#concurrency-controls), checked October 18, 2026). With `limits_concurrency` and the default `on_conflict: :block`, jobs over the limit stay blocked "until another job finishes and unblocks them, or after the set expiry time (concurrency limit's _duration_) elapses".
25+
26+
- An unblocked job does not run at once. Solid Queue moves it "from _blocked_ to _ready_".
27+
- In the 1.7.0 source code, Solid Queue releases blocked jobs by priority, then by job ID ([`execution.rb`](https://github.com/rails/solid_queue/blob/v1.7.0/app/models/solid_queue/execution.rb)).
28+
- "Jobs that have been blocked for more than `duration` are candidates to be released, but only as many of them as the concurrency rules allow".
29+
- A job that `retry_on` enqueues again waits like a new job. Retried jobs "get in the queue for getting an open semaphore". So the retry of an earlier job can run after a job that was enqueued later.
30+
- With `on_conflict: :discard`, Solid Queue discards the job instead.
31+
- In Solid Objects, a second message for the same actor waits in the mailbox. Messages run in the order that the runtime stores them.
2132

2233
## Choose Solid Queue when
2334

@@ -222,7 +233,7 @@ Solid Queue is older and has more users. If that matters more than order for eac
222233

223234
## Sources
224235

225-
Checked October 15, 2026:
236+
Checked October 18, 2026:
226237

227238
- [Solid Queue 1.7.0 README: concurrency controls](https://github.com/rails/solid_queue/blob/v1.7.0/README.md#concurrency-controls)
228239
- [Solid Queue 1.7.0 README: jobs interrupted by non-graceful process death](https://github.com/rails/solid_queue/blob/v1.7.0/README.md#jobs-interrupted-by-non-graceful-process-death)

0 commit comments

Comments
 (0)