Skip to content

docs: align use-case claims with the JS port - #55

Merged
cardmagic merged 1 commit into
mainfrom
docs/align-use-case-claims
Aug 25, 2026
Merged

docs: align use-case claims with the JS port#55
cardmagic merged 1 commit into
mainfrom
docs/align-use-case-claims

Conversation

@cardmagic

@cardmagic cardmagic commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Why

The gem and solid-objects-js gave contradictory advice about one runtime. docs/fit.md called a rate limiter an anti-pattern, while the JS README sold per-key rate limits as a pattern. "Is it worth installing here?" listed long-lived workflows with no limit, while the JS fit guide sent step-replay workflows elsewhere. A reader who compared the two projects could not tell which was right.

What changed

Both repos now draw one line, in matching words:

  • A low-rate quota that a reminder refills fits, because each check is one durable ordered message with a retained history row.
  • A limiter that every request to that identity touches does not fit. That high-QPS shape belongs to Solid Objects Pro.
  • A workflow fits when one entity owns the mutable state and its mailbox holds the step order. A durable execution engine that replays named steps from a step log is a different tool, because this runtime redelivers an ordered message and retries it.

docs/fit.md also names Solid Objects Pro for the high-QPS cases it rejects, and maps the three capabilities onto them: grouped operations, ephemeral operations, and reactive projections. The README already pointed there; the guide stopped at "anti-pattern".

Branding

The README is titled "Solid Objects Ruby", matching "Solid Objects JS" in the Node package, and both READMEs now carry the same two badges: a CI badge pinned to main, and a registry version badge. The gem name, the module, and the published gemspec metadata do not change.

Testing

bundle exec rake passes: Minitest on SQLite, Standard, RuboCop, RBS, Steep, and Brakeman with no warnings.

Paired change

cardmagic/solid-objects-js#30 carries the Node half.

The fit guide called a rate limiter an anti-pattern while the JS README
sold per-key rate limits, and "Is it worth installing here?" listed
long-lived workflows with no limit. A reader who compared the two
projects got contradictory advice about one runtime.

Both now draw one line. A low-rate quota that a reminder refills fits,
because each check is one durable ordered message with a retained
history row. A limiter that every request touches does not. A workflow
fits when one entity owns the mutable state and its mailbox holds the
step order; a durable execution engine that replays named steps from a
step log is a different tool.

Name Solid Objects Pro in the fit guide for the high-QPS cases it
rejects, and map its three capabilities onto them. The README already
pointed there; the guide stopped at "anti-pattern".

Title the README "Solid Objects Ruby" to match "Solid Objects JS" in
the Node package, and give both the same two badges: a CI badge pinned
to main and a registry version badge. The gem name, the module, and the
published metadata do not change.
@cardmagic
cardmagic merged commit c246368 into main Aug 25, 2026
39 checks passed
@cardmagic
cardmagic deleted the docs/align-use-case-claims branch August 25, 2026 20:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant