solid-objects 1.0.3 → 1.0.5
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 +17 -0
- package/README.md +4 -7
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/agents.md +2 -2
- package/docs/compare/dbos.md +2 -3
- package/docs/compare/graphile-worker.md +2 -3
- package/docs/compare/restate.md +2 -3
- package/docs/compare/rivetkit.md +2 -3
- package/docs/guides/persistent-rooms.md +1 -1
- package/docs/guides/race-conditions.md +1 -1
- package/docs/virtual-actors.md +4 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.5 - 2026-10-18
|
|
4
|
+
|
|
5
|
+
- `docs/versioning.md` is now the only page that states that version 1.0
|
|
6
|
+
makes no claim of measured scale, that longer soak tests are open work, and
|
|
7
|
+
that no production use by other people is known. The comparison pages,
|
|
8
|
+
`docs/agents.md`, `docs/virtual-actors.md`, and the problem guides link it
|
|
9
|
+
instead. The comparison pages no longer state the first public release
|
|
10
|
+
date.
|
|
11
|
+
|
|
12
|
+
## 1.0.4 - 2026-10-18
|
|
13
|
+
|
|
14
|
+
- The README no longer states the first public release date, that no
|
|
15
|
+
production use by other people is known, that longer soak tests are open
|
|
16
|
+
work, or that version 1.0 makes no claim of measured scale.
|
|
17
|
+
`docs/versioning.md` keeps the other three limits, and the README links it.
|
|
18
|
+
The comparison pages keep the first public release date.
|
|
19
|
+
|
|
3
20
|
## 1.0.3 - 2026-10-18
|
|
4
21
|
|
|
5
22
|
- Add `docs/maintenance.md`. It tells you who maintains the package, how CI
|
package/README.md
CHANGED
|
@@ -13,12 +13,11 @@ explains the model and when to use it.
|
|
|
13
13
|
|
|
14
14
|
**Status.** Version 1.0: the public API follows semantic versioning and does
|
|
15
15
|
not break before 2.0. [Versioning](docs/versioning.md) gives the limits of the
|
|
16
|
-
promise.
|
|
16
|
+
promise.
|
|
17
17
|
|
|
18
18
|
**Production use.** One first-party application with more than 100,000 users
|
|
19
|
-
runs it in production. That is a count of users, not a measure of load.
|
|
20
|
-
|
|
21
|
-
are development measurements, and longer soak tests are open work.
|
|
19
|
+
runs it in production. That is a count of users, not a measure of load. The
|
|
20
|
+
[benchmarks](docs/benchmarks.md) are development measurements.
|
|
22
21
|
|
|
23
22
|
**It is not** Solid Queue, SolidJS, or the `service_actor` gem, and it is not
|
|
24
23
|
affiliated with Rails or Cloudflare.
|
|
@@ -304,9 +303,7 @@ notes remain in `docs/`, where long documentation can be long on purpose.
|
|
|
304
303
|
|
|
305
304
|
Version 1.0 promises a stable public API. The correctness core has automated
|
|
306
305
|
coverage across the supported databases, browser runtime, recovery paths, and
|
|
307
|
-
packaged artifact.
|
|
308
|
-
[benchmarks](docs/benchmarks.md) are development measurements, and longer soak
|
|
309
|
-
tests are open work. [Versioning](docs/versioning.md) says what a release can
|
|
306
|
+
packaged artifact. [Versioning](docs/versioning.md) says what a release can
|
|
310
307
|
change. The Cloudflare backend is experimental and is outside that promise.
|
|
311
308
|
|
|
312
309
|
Solid Objects is released under the [MIT License](MIT-LICENSE). It is an
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "1.0.
|
|
1
|
+
export declare const VERSION = "1.0.5";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "1.0.
|
|
1
|
+
export const VERSION = "1.0.5";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/docs/agents.md
CHANGED
|
@@ -347,8 +347,8 @@ When you explain Solid Objects to a user, state these limits:
|
|
|
347
347
|
- There are no transactions across actor identities.
|
|
348
348
|
- Fencing stops a stale activation from a commit, but its code can continue to
|
|
349
349
|
run.
|
|
350
|
-
- Version 1.0 promises a stable public API.
|
|
351
|
-
|
|
350
|
+
- Version 1.0 promises a stable public API. [Versioning](versioning.md) states
|
|
351
|
+
the limits of that promise.
|
|
352
352
|
- `solid-objects/browser` is a WebSocket client, not the SQL runtime. The
|
|
353
353
|
browser runtime in step 12 is tested in Chromium only. The Cloudflare backend
|
|
354
354
|
is experimental and is outside the version 1.0 promise.
|
package/docs/compare/dbos.md
CHANGED
|
@@ -351,11 +351,10 @@ How it works:
|
|
|
351
351
|
|
|
352
352
|
**Is Solid Objects mature enough?** Here are the facts:
|
|
353
353
|
|
|
354
|
-
- First public release of the npm package: August 13, 2026.
|
|
355
354
|
- Version 1.0.0: October 13, 2026. The public API follows [semantic versioning](../versioning.md).
|
|
356
355
|
- [Maintenance and continuity](../maintenance.md) tells you who maintains the project and how a release is made.
|
|
357
|
-
- One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load.
|
|
358
|
-
- The [benchmarks](../benchmarks.md) are development measurements.
|
|
356
|
+
- One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load.
|
|
357
|
+
- The [benchmarks](../benchmarks.md) are development measurements. [Versioning](../versioning.md) states what version 1.0 does not claim.
|
|
359
358
|
|
|
360
359
|
DBOS has a company, a hosted service, and a longer history. If those matter more than state for each cart, choose DBOS.
|
|
361
360
|
|
|
@@ -256,11 +256,10 @@ How it works:
|
|
|
256
256
|
|
|
257
257
|
**Is Solid Objects mature enough?** Here are the facts:
|
|
258
258
|
|
|
259
|
-
- First public release of the npm package: August 13, 2026.
|
|
260
259
|
- Version 1.0.0: October 13, 2026. The public API follows [semantic versioning](../versioning.md).
|
|
261
260
|
- [Maintenance and continuity](../maintenance.md) tells you who maintains the project and how a release is made.
|
|
262
|
-
- One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load.
|
|
263
|
-
- The [benchmarks](../benchmarks.md) are development measurements.
|
|
261
|
+
- One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load.
|
|
262
|
+
- The [benchmarks](../benchmarks.md) are development measurements. [Versioning](../versioning.md) states what version 1.0 does not claim.
|
|
264
263
|
|
|
265
264
|
**Why Node.js 24.4 or newer?** The SQLite adapter reads integer columns as `BigInt`. Node.js 24.4.0 is the first release that accepts `readBigInts` on the built-in SQLite module. See [support](../support.md).
|
|
266
265
|
|
package/docs/compare/restate.md
CHANGED
|
@@ -252,11 +252,10 @@ A model call can run again after a crash, because effects run at least once. If
|
|
|
252
252
|
|
|
253
253
|
**Is Solid Objects mature enough?** Here are the facts:
|
|
254
254
|
|
|
255
|
-
- First public release of the npm package: August 13, 2026.
|
|
256
255
|
- Version 1.0.0: October 13, 2026. The public API follows [semantic versioning](../versioning.md).
|
|
257
256
|
- [Maintenance and continuity](../maintenance.md) tells you who maintains the project and how a release is made.
|
|
258
|
-
- One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load.
|
|
259
|
-
- The [benchmarks](../benchmarks.md) are development measurements.
|
|
257
|
+
- One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load.
|
|
258
|
+
- The [benchmarks](../benchmarks.md) are development measurements. [Versioning](../versioning.md) states what version 1.0 does not claim.
|
|
260
259
|
|
|
261
260
|
Restate reached 1.0 in June 2024. If a longer history matters more than keeping the state in your own database, choose Restate.
|
|
262
261
|
|
package/docs/compare/rivetkit.md
CHANGED
|
@@ -244,11 +244,10 @@ How it works:
|
|
|
244
244
|
|
|
245
245
|
**Is Solid Objects mature enough?** Here are the facts:
|
|
246
246
|
|
|
247
|
-
- First public release of the npm package: August 13, 2026.
|
|
248
247
|
- Version 1.0.0: October 13, 2026. The public API follows [semantic versioning](../versioning.md).
|
|
249
248
|
- [Maintenance and continuity](../maintenance.md) tells you who maintains the project and how a release is made.
|
|
250
|
-
- One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load.
|
|
251
|
-
- The [benchmarks](../benchmarks.md) are development measurements.
|
|
249
|
+
- One first-party application with more than 100,000 users runs it in production. That is a count of users, not a measure of load.
|
|
250
|
+
- The [benchmarks](../benchmarks.md) are development measurements. [Versioning](../versioning.md) states what version 1.0 does not claim.
|
|
252
251
|
|
|
253
252
|
**Why Node.js 24.4 or newer?** The SQLite adapter reads integer columns as `BigInt`. Node.js 24.4.0 is the first release that accepts `readBigInts` on the built-in SQLite module. See [support](../support.md).
|
|
254
253
|
|
|
@@ -383,7 +383,7 @@ The seventh test does not inject a late or repeated timer. The turn number check
|
|
|
383
383
|
|
|
384
384
|
Delivery is at least once. Write each operation so that it can run again. One room runs one write at a time. This fits turn-based play, not a high-frequency game loop or fast real-time physics.
|
|
385
385
|
|
|
386
|
-
The application owns the WebSocket server, authentication, and the display of the room. There are no transactions across two rooms. The package requires Node.js 24.4 or newer and ESM only. Version 1.0 promises a stable public API.
|
|
386
|
+
The application owns the WebSocket server, authentication, and the display of the room. There are no transactions across two rooms. The package requires Node.js 24.4 or newer and ESM only. Version 1.0 promises a stable public API. [Versioning](../versioning.md) states the limits of that promise.
|
|
387
387
|
|
|
388
388
|
See [Correctness and delivery semantics](../correctness.md) and [Virtual actors in TypeScript and Node.js](../virtual-actors.md).
|
|
389
389
|
|
|
@@ -355,7 +355,7 @@ There are no transactions across two actor identities. One identity runs one wri
|
|
|
355
355
|
|
|
356
356
|
Each operation adds a message row. The runtime keeps completed messages for 30 days by default through `messageRetentionMilliseconds`. See [Configuration](../configuration.md#retention-and-cleanup) for retention and cleanup controls.
|
|
357
357
|
|
|
358
|
-
The package requires Node.js 24.4 or newer and supports ESM only. Version 1.0 promises a stable public API.
|
|
358
|
+
The package requires Node.js 24.4 or newer and supports ESM only. Version 1.0 promises a stable public API. [Versioning](../versioning.md) states the limits of that promise. See [Correctness and delivery semantics](../correctness.md) and [Virtual actors in TypeScript and Node.js](../virtual-actors.md).
|
|
359
359
|
|
|
360
360
|
## Sources
|
|
361
361
|
|
package/docs/virtual-actors.md
CHANGED
|
@@ -246,10 +246,9 @@ These runtimes have different compatibility statements:
|
|
|
246
246
|
| Browser runtime (`solid-objects/browser/host`) | The actor runtime in a browser module worker on SQLite WASM. Tested in Chromium |
|
|
247
247
|
| Cloudflare backend (`solid-objects/cloudflare`) | Experimental. It runs the actor API on Cloudflare Durable Objects, with different capability limits |
|
|
248
248
|
|
|
249
|
-
Version 1.0: the public API follows [semantic versioning](versioning.md)
|
|
250
|
-
|
|
251
|
-
more than 100,000 users runs the
|
|
252
|
-
users, not a measure of load.
|
|
253
|
-
and no production use by other people is known.
|
|
249
|
+
Version 1.0: the public API follows [semantic versioning](versioning.md),
|
|
250
|
+
which also states the limits of that promise. The Cloudflare backend is outside
|
|
251
|
+
that promise. One first-party application with more than 100,000 users runs the
|
|
252
|
+
package in production. That is a count of users, not a measure of load.
|
|
254
253
|
[Supported versions](support.md) lists the CI matrix. For Ruby on Rails, use
|
|
255
254
|
the [solid_objects](https://github.com/cardmagic/solid-objects-ruby) gem.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solid-objects",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Fix race conditions across Node.js processes: ordered operations, expiring holds, and state that survives a restart, in your SQL database. A SQL-backed virtual actor library for TypeScript and Node.js.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|