Releases: cardmagic/solid-objects-js
Release list
v0.13.2
Solid Objects 0.13.2 lets one actor hold an alarm for each item it waits on, and adds a process administration query.
Highlights
scheduleaccepts akey, which names the reminder for the item it waits on rather than for its operation. One actor holds one alarm for each queued item. The same key moves that item's alarm and leaves the others alone.- A schedule without a key still takes the operation as the name, so existing reminders keep their names and their coalescing behaviour.
- The reminders table gets a nullable
message_operationcolumn. A migration adds it and leaves existing rows null, so an alarm armed by an older release still fires after the upgrade. - The composed reminder name is bounded by the 255 characters MySQL holds it in. The check applies to the name, not to the key alone.
runtime.administration.processes()returns live and stale process rows through the runtime database adapter. The query needs authorization.- The polling-only warning now names rolling deployment overlap as a cause.
Install with npm install solid-objects@0.13.2.
See the full changelog and correctness boundaries.
v0.13.1
Solid Objects 0.13.1 backs idle polling off to a one-second ceiling, and makes each role's polling interval visible.
Highlights
- Idle actor, effect, reminder, and broadcast polling backs off exponentially from the configured fast interval to a new one-second idle ceiling. Processed work or a wake-up resets the role at once, and actor polling stays capped by the lease-renewal interval.
- Each role reports its current polling interval and emits
solid_objects.polling.interval_changedinstrumentation for every idle, work, and wake-up transition. - One warning reports live processes that share the database without a configured cross-process wake-up adapter.
- Older custom wake-up adapters that return
voidkeep their behaviour. The built-in PostgreSQL, Redis, and in-process adapters returntruefor a notification andfalsefor a timeout, so adaptive polling can tell the two apart. - A reproducible four-role SQLite idle benchmark is added.
Behavior change: pollingIntervalMilliseconds is now the fast interval after activity, not a constant idle cadence. Existing explicit values back off to idlePollingIntervalMilliseconds, which defaults to 1_000. Set both options to the same value to keep a fixed cadence.
Install with npm install solid-objects@0.13.1.
See the full changelog and correctness boundaries.
v0.13.0
Solid Objects 0.13.0 strengthens first-run verification, recovery evidence, operational tooling, and explicit realtime delivery semantics.
Highlights
- Adds a packaged SQLite quickstart and a clean-install release-artifact smoke gate.
- Adds a deterministic multi-process crash and fencing demonstration.
- Adds reproducible SQLite, PostgreSQL 18, and MySQL 8.4 benchmark results, with unmeasured configurations labeled explicitly.
- Adds the optional solid-objects/web operational dashboard and read-only access mode.
- Makes unwrapped observables invalidation-only by default; use broadcastValue() for shared scalar values.
- Expands support, contribution, security, correctness, and operational documentation.
Install with npm install solid-objects@0.13.0.
See the full changelog and correctness boundaries.