solid-objects 0.13.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -1
- package/README.md +67 -8
- package/dist/broadcast-worker.d.ts +2 -0
- package/dist/broadcast-worker.d.ts.map +1 -1
- package/dist/broadcast-worker.js +25 -5
- package/dist/broadcast-worker.js.map +1 -1
- package/dist/configuration.d.ts +2 -0
- package/dist/configuration.d.ts.map +1 -1
- package/dist/configuration.js +3 -0
- package/dist/configuration.js.map +1 -1
- package/dist/effect-worker.d.ts +2 -0
- package/dist/effect-worker.d.ts.map +1 -1
- package/dist/effect-worker.js +25 -5
- package/dist/effect-worker.js.map +1 -1
- package/dist/polling-backoff.d.ts +23 -0
- package/dist/polling-backoff.d.ts.map +1 -0
- package/dist/polling-backoff.js +33 -0
- package/dist/polling-backoff.js.map +1 -0
- package/dist/reminder-scheduler.d.ts +2 -0
- package/dist/reminder-scheduler.d.ts.map +1 -1
- package/dist/reminder-scheduler.js +25 -5
- package/dist/reminder-scheduler.js.map +1 -1
- package/dist/repository.d.ts +1 -0
- package/dist/repository.d.ts.map +1 -1
- package/dist/repository.js +10 -0
- package/dist/repository.js.map +1 -1
- package/dist/runtime.d.ts +4 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +34 -0
- package/dist/runtime.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/wake-up/postgresql.d.ts.map +1 -1
- package/dist/wake-up/postgresql.js +12 -11
- package/dist/wake-up/postgresql.js.map +1 -1
- package/dist/wake-up.d.ts +1 -1
- package/dist/wake-up.d.ts.map +1 -1
- package/dist/wake-up.js +11 -10
- package/dist/wake-up.js.map +1 -1
- package/dist/worker.d.ts +2 -0
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +25 -5
- package/dist/worker.js.map +1 -1
- package/docs/api.md +7 -4
- package/docs/architecture.md +5 -2
- package/docs/benchmarks.md +40 -0
- package/docs/configuration.md +11 -2
- package/docs/operations.md +25 -7
- package/docs/parity.md +2 -2
- package/docs/releasing.md +2 -2
- package/package.json +2 -1
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACd,mBAAmB,GACpB,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
package/docs/api.md
CHANGED
|
@@ -179,14 +179,17 @@ Factories should create fresh mutable state and `stop()` should be idempotent.
|
|
|
179
179
|
exported for test runners and hosts that intentionally operate roles outside
|
|
180
180
|
`runtime.run()`. Runtime factory methods create the same classes. Each provides
|
|
181
181
|
`runOnce()`, bounded `runUntilIdle()`, `run(signal)`, `requestShutdown()`,
|
|
182
|
-
`stopped()`,
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
`stopped()`, `stop()`, and the inspectable
|
|
183
|
+
`currentPollingIntervalMilliseconds`. Manual roles still register process
|
|
184
|
+
ownership and must be stopped. Prefer `runtime.run()` in production and
|
|
185
|
+
`runtime.testing` in tests.
|
|
185
186
|
|
|
186
187
|
`InProcessWakeUpAdapter`, `WakeUpAdapter`, `WakeUpRole`, `WakeUpWatch`, and
|
|
187
188
|
`WakeUpWaitOptions` define the notification extension. A watch must be obtained
|
|
188
189
|
before checking durable state so a notification cannot fall between claim and
|
|
189
|
-
wait.
|
|
190
|
+
wait. `WakeUpWatch.wait()` returns `true` for a notification and `false` for a
|
|
191
|
+
timeout or cancellation. A legacy `void` result remains accepted and preserves
|
|
192
|
+
the fast polling cadence.
|
|
190
193
|
|
|
191
194
|
### Errors
|
|
192
195
|
|
package/docs/architecture.md
CHANGED
|
@@ -25,7 +25,9 @@ Each role takes a generation watch before checking for work. A post-commit
|
|
|
25
25
|
wake-up therefore cannot fall into the gap between an empty claim and the
|
|
26
26
|
worker's wait. The default adapter broadcasts within one process; polling
|
|
27
27
|
remains active as the durable fallback and custom adapters can bridge process
|
|
28
|
-
boundaries.
|
|
28
|
+
boundaries. Empty passes double the role's wait up to the configured idle
|
|
29
|
+
ceiling. Work or a notification resets it to the fast interval, and an actor
|
|
30
|
+
worker's ceiling never exceeds its lease-renewal interval.
|
|
29
31
|
|
|
30
32
|
Each runtime role occupies a supervised factory slot. An unexpected promise
|
|
31
33
|
resolution or rejection cleans up that instance, waits with capped exponential
|
|
@@ -63,7 +65,8 @@ per runtime listens on role-specific channels before the worker checks durable
|
|
|
63
65
|
state, which closes the listener-startup race without holding a polling
|
|
64
66
|
connection per worker. A notification advances a process-local role generation
|
|
65
67
|
and wakes every matching waiter. Reconnection and notification loss fall back
|
|
66
|
-
to the
|
|
68
|
+
to adaptive polling, whose current wait can be as long as the configured idle
|
|
69
|
+
ceiling.
|
|
67
70
|
|
|
68
71
|
The optional Redis adapter provides the same role generations through Pub/Sub
|
|
69
72
|
for deployments that already operate Redis. It keeps commands and subscriptions
|
package/docs/benchmarks.md
CHANGED
|
@@ -3,6 +3,46 @@
|
|
|
3
3
|
The benchmark harness measures committed actor operations. It is intended to
|
|
4
4
|
show tradeoffs and catch large regressions, not to predict application capacity.
|
|
5
5
|
|
|
6
|
+
## Idle polling
|
|
7
|
+
|
|
8
|
+
The idle harness measures process CPU and empty database passes for the four
|
|
9
|
+
runtime roles:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pnpm run benchmark:idle
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
It warms each interval for three seconds, measures for ten seconds, and reports
|
|
16
|
+
process user plus system CPU time divided by wall time.
|
|
17
|
+
|
|
18
|
+
Measured on August 16, 2026 on an Apple M5 with Node.js 26.7.0 and in-memory
|
|
19
|
+
SQLite. The before run used 0.13.0; the after run used the prepared 0.13.1 tree.
|
|
20
|
+
Each run started one actor, effect, reminder, and broadcast role.
|
|
21
|
+
|
|
22
|
+
| Fast interval | Before polls/s | Before CPU | After polls/s | After CPU |
|
|
23
|
+
| ------------: | -------------: | ---------: | ------------: | --------: |
|
|
24
|
+
| 20 ms | 188.78 | 3.254% | 4.000 | 0.129% |
|
|
25
|
+
| 100 ms | 39.596 | 0.906% | 3.999 | 0.121% |
|
|
26
|
+
| 500 ms | 7.999 | 0.251% | 3.999 | 0.104% |
|
|
27
|
+
|
|
28
|
+
The after run reached the one-second ceiling for all four roles. These are
|
|
29
|
+
developer-laptop measurements, not a CPU guarantee; timer scheduling, JIT,
|
|
30
|
+
database path, and unrelated host activity affect short samples.
|
|
31
|
+
|
|
32
|
+
Five SQLite samples measured durable enqueue through committed completion after
|
|
33
|
+
2.5 seconds of idleness. The polling-only multi-process harness submits just
|
|
34
|
+
after an empty pass, so it measures approximately the full polling wait rather
|
|
35
|
+
than average arrival latency.
|
|
36
|
+
|
|
37
|
+
| Topology | 0.13.0 p50 | Prepared 0.13.1 p50 |
|
|
38
|
+
| ------------------------------- | ---------: | ------------------: |
|
|
39
|
+
| One process, in-process wake-up | 2.589 ms | 2.662 ms |
|
|
40
|
+
| Two processes, polling only | 107.945 ms | 1,006.232 ms |
|
|
41
|
+
|
|
42
|
+
The local wake-up keeps the one-process path prompt after backoff. The
|
|
43
|
+
polling-only row is the explicit tradeoff: use PostgreSQL notifications or
|
|
44
|
+
optional Redis Pub/Sub when separate processes need low-latency delivery.
|
|
45
|
+
|
|
6
46
|
## Scenarios
|
|
7
47
|
|
|
8
48
|
- `warm-hot`: all operations target one previously created identity.
|
package/docs/configuration.md
CHANGED
|
@@ -11,6 +11,7 @@ through `runtime.ref(ActorClass, actorId)`. Both validate options immediately.
|
|
|
11
11
|
| `database` | required | A `Database` adapter. |
|
|
12
12
|
| `tableNamePrefix` | `"solid_objects_"` | Lowercase letters, digits, and underscores; must start with a letter. |
|
|
13
13
|
| `pollingIntervalMilliseconds` | `100` | Positive durable-work polling interval. |
|
|
14
|
+
| `idlePollingIntervalMilliseconds` | `1_000` | Positive ceiling after consecutive empty polling passes. |
|
|
14
15
|
| `syncPollingIntervalMilliseconds` | `50` | Positive result-wait polling interval. |
|
|
15
16
|
| `leaseDurationMilliseconds` | `30_000` | Positive activation lease; must exceed renewal interval. |
|
|
16
17
|
| `leaseRenewalIntervalMilliseconds` | `10_000` | Positive activation renewal cadence. |
|
|
@@ -52,8 +53,16 @@ affected failure path rather than schedule an invalid timestamp.
|
|
|
52
53
|
|
|
53
54
|
Counts may be zero, but the complete configuration must leave at least one
|
|
54
55
|
runtime role enabled. Broadcast workers are started only when `broadcast` or
|
|
55
|
-
`authorizeSubscription` is configured.
|
|
56
|
-
|
|
56
|
+
`authorizeSubscription` is configured.
|
|
57
|
+
|
|
58
|
+
`pollingIntervalMilliseconds` is the fast interval after work or a wake-up.
|
|
59
|
+
Consecutive empty passes double it up to
|
|
60
|
+
`idlePollingIntervalMilliseconds`. Actor workers never wait longer than
|
|
61
|
+
`leaseRenewalIntervalMilliseconds`. Set the fast and idle values equal for a
|
|
62
|
+
fixed cadence. A custom wake-up adapter should return `true` for a notification
|
|
63
|
+
and `false` for a timeout; an older adapter that returns `void` remains
|
|
64
|
+
compatible and keeps the fast cadence. Wake-ups reduce latency, while database
|
|
65
|
+
polling remains the correctness path.
|
|
57
66
|
|
|
58
67
|
## Retention and cleanup
|
|
59
68
|
|
package/docs/operations.md
CHANGED
|
@@ -1,12 +1,30 @@
|
|
|
1
1
|
# Operations
|
|
2
2
|
|
|
3
|
-
Runtime roles use durable polling as the correctness fallback.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
Runtime roles use durable polling as the correctness fallback. Consecutive
|
|
4
|
+
empty passes double each role's wait from `pollingIntervalMilliseconds` to
|
|
5
|
+
`idlePollingIntervalMilliseconds`, which defaults to one second. Processed
|
|
6
|
+
work and wake-up notifications reset the role to the fast interval. Actor
|
|
7
|
+
workers clamp the ceiling to `leaseRenewalIntervalMilliseconds` while they may
|
|
8
|
+
hold cached activations.
|
|
9
|
+
|
|
10
|
+
The default generation-based wake-up adapter interrupts waits for new actor
|
|
11
|
+
messages, effects, reminders, and broadcasts in the same Node process. It does
|
|
12
|
+
not cross a process boundary. When live processes share the database without a
|
|
13
|
+
configured adapter, the runtime logs
|
|
14
|
+
`solid_objects.polling_only_cross_process_wake_up` once. Use PostgreSQL
|
|
15
|
+
notifications or optional Redis Pub/Sub when separate processes need prompt
|
|
16
|
+
delivery; without one, newly committed work can wait up to the current idle
|
|
17
|
+
polling interval. Notification errors are isolated and logged by role and error
|
|
18
|
+
class without failing the committed work.
|
|
19
|
+
|
|
20
|
+
Each role exposes `currentPollingIntervalMilliseconds`.
|
|
21
|
+
`solid_objects.polling.interval_changed` reports the role, reason, previous
|
|
22
|
+
interval, and current interval. The polling-only warning is also emitted as
|
|
23
|
+
`solid_objects.polling.only_cross_process_wake_up` instrumentation.
|
|
24
|
+
|
|
25
|
+
Graceful shutdown stops new claims and allows active turns to finish within
|
|
26
|
+
`shutdownTimeoutMilliseconds`, which defaults to 15 seconds. A component still
|
|
27
|
+
running or stopping at the deadline emits
|
|
10
28
|
`solid_objects.supervisor.component_shutdown_timeout`; the runtime then returns
|
|
11
29
|
without pretending JavaScript code was forcibly terminated. Operators should
|
|
12
30
|
monitor oldest ready work, claimed work, dead letters, effect failures,
|
package/docs/parity.md
CHANGED
|
@@ -4,11 +4,11 @@ This ledger tracks capability parity with the Ruby `solid_objects` gem.
|
|
|
4
4
|
Parity means preserving a capability and its correctness or security boundary,
|
|
5
5
|
not copying a Rails API into Node.
|
|
6
6
|
|
|
7
|
-
Reference: Ruby `solid_objects` 0.13.
|
|
7
|
+
Reference: Ruby `solid_objects` 0.13.1. The JavaScript package began at the
|
|
8
8
|
Ruby design's `0.12` capability generation; that version number did not imply
|
|
9
9
|
earlier JavaScript releases.
|
|
10
10
|
|
|
11
|
-
The Node `0.13.
|
|
11
|
+
The Node `0.13.1` implementation has capability parity with that reference. Its
|
|
12
12
|
relational runtime, correctness boundaries, administration, diagnostics,
|
|
13
13
|
operator dashboard, realtime projections, browser behavior, and supported
|
|
14
14
|
adapters have native equivalents. Rails-specific rendering surfaces are
|
package/docs/releasing.md
CHANGED
|
@@ -38,8 +38,8 @@ npm trust github solid-objects \
|
|
|
38
38
|
4. Create and push an annotated tag matching the package version:
|
|
39
39
|
|
|
40
40
|
```shell
|
|
41
|
-
git tag -a v0.13.
|
|
42
|
-
git push origin v0.13.
|
|
41
|
+
git tag -a v0.13.1 -m "Version 0.13.1"
|
|
42
|
+
git push origin v0.13.1
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
The tag runs the complete CI matrix. The publish job starts only after every
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solid-objects",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.1",
|
|
4
4
|
"description": "Race-free realtime state per application identity, backed by your SQL database",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
"test:redis": "vitest run test/redis-wake-up.test.ts",
|
|
86
86
|
"test:watch": "vitest",
|
|
87
87
|
"benchmark": "pnpm run build && node benchmarks/run.ts",
|
|
88
|
+
"benchmark:idle": "pnpm run build && node benchmarks/idle.ts",
|
|
88
89
|
"pack:check": "pnpm pack --dry-run && node scripts/check-package.mjs",
|
|
89
90
|
"prepack": "pnpm run build"
|
|
90
91
|
},
|