solid-objects 0.17.7 → 1.0.0

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.
Files changed (67) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +23 -7
  3. package/dist/actor.d.ts.map +1 -1
  4. package/dist/actor.js +24 -2
  5. package/dist/actor.js.map +1 -1
  6. package/dist/broadcast-worker.d.ts.map +1 -1
  7. package/dist/broadcast-worker.js +5 -3
  8. package/dist/broadcast-worker.js.map +1 -1
  9. package/dist/cloudflare/protocol.d.ts.map +1 -1
  10. package/dist/cloudflare/protocol.js +1 -0
  11. package/dist/cloudflare/protocol.js.map +1 -1
  12. package/dist/effect-worker.d.ts.map +1 -1
  13. package/dist/effect-worker.js +5 -3
  14. package/dist/effect-worker.js.map +1 -1
  15. package/dist/errors.d.ts +2 -0
  16. package/dist/errors.d.ts.map +1 -1
  17. package/dist/errors.js +2 -0
  18. package/dist/errors.js.map +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/platform/node.js +2 -0
  24. package/dist/platform/node.js.map +1 -1
  25. package/dist/reminder-scheduler.d.ts.map +1 -1
  26. package/dist/reminder-scheduler.js +5 -3
  27. package/dist/reminder-scheduler.js.map +1 -1
  28. package/dist/repository.d.ts +1 -0
  29. package/dist/repository.d.ts.map +1 -1
  30. package/dist/repository.js +22 -2
  31. package/dist/repository.js.map +1 -1
  32. package/dist/runtime.d.ts +4 -1
  33. package/dist/runtime.d.ts.map +1 -1
  34. package/dist/runtime.js +58 -37
  35. package/dist/runtime.js.map +1 -1
  36. package/dist/test-helper.d.ts.map +1 -1
  37. package/dist/test-helper.js +8 -2
  38. package/dist/test-helper.js.map +1 -1
  39. package/dist/turn.d.ts.map +1 -1
  40. package/dist/turn.js +1 -0
  41. package/dist/turn.js.map +1 -1
  42. package/dist/version.d.ts +1 -1
  43. package/dist/version.d.ts.map +1 -1
  44. package/dist/version.js +1 -1
  45. package/dist/version.js.map +1 -1
  46. package/dist/worker.d.ts.map +1 -1
  47. package/dist/worker.js +5 -3
  48. package/dist/worker.js.map +1 -1
  49. package/dist/yield-to-event-loop.d.ts +3 -0
  50. package/dist/yield-to-event-loop.d.ts.map +1 -0
  51. package/dist/yield-to-event-loop.js +10 -0
  52. package/dist/yield-to-event-loop.js.map +1 -0
  53. package/docs/agents.md +16 -11
  54. package/docs/api.md +23 -3
  55. package/docs/configuration.md +24 -2
  56. package/docs/errors-and-recovery.md +2 -0
  57. package/docs/guides/persistent-rooms.md +1 -1
  58. package/docs/guides/race-conditions.md +1 -1
  59. package/docs/observability.md +16 -15
  60. package/docs/operations.md +2 -1
  61. package/docs/parity.md +41 -39
  62. package/docs/versioning.md +50 -0
  63. package/docs/virtual-actors.md +15 -6
  64. package/examples/failure-recovery/demo.ts +6 -5
  65. package/examples/failure-recovery/process-messages.ts +10 -0
  66. package/examples/failure-recovery/worker.ts +2 -5
  67. package/package.json +8 -5
package/dist/turn.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"turn.js","sourceRoot":"","sources":["../src/turn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn.js","sourceRoot":"","sources":["../src/turn.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.17.7";
1
+ export declare const VERSION = "1.0.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAA"}
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.17.7";
1
+ export const VERSION = "1.0.0";
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAUvD,qBAAa,MAAM;IAQf,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,QAAQ,CAAC,SAAS,SAAe;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;gBAG5B,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;KAAO;IAmBtE,IAAI,kCAAkC,IAAI,MAAM,CAE/C;IAEK,OAAO,CAAC,OAAO,GAAE;QAAE,mBAAmB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA4EtF,YAAY,CAAC,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAelE,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7C,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,OAAO;IAIZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,wBAAwB;YAUxB,gBAAgB;YAMhB,qBAAqB;YAUrB,yBAAyB;YA6BzB,iBAAiB;YASjB,kBAAkB;IAQhC,OAAO,CAAC,kBAAkB;CAgB3B;AAmBD,wBAAgB,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAajF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE;IAC1D,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CACjC,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAWvD,qBAAa,MAAM;IAQf,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,QAAQ,CAAC,SAAS,SAAe;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;gBAG5B,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;KAAO;IAmBtE,IAAI,kCAAkC,IAAI,MAAM,CAE/C;IAEK,OAAO,CAAC,OAAO,GAAE;QAAE,mBAAmB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA2EtF,YAAY,CAAC,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBlE,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7C,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,OAAO;IAIZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,wBAAwB;YAUxB,gBAAgB;YAKhB,qBAAqB;YAUrB,yBAAyB;YA6BzB,iBAAiB;YASjB,kBAAkB;IAQhC,OAAO,CAAC,kBAAkB;CAgB3B;AAmBD,wBAAgB,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAajF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE;IAC1D,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CACjC,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlB"}
package/dist/worker.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { randomUUID } from "./platform/uuid.js";
2
2
  import { ActorSetupFailed, ApplicationWriteForbidden, LostActivation, StateMigrationError, } from "./errors.js";
3
3
  import { PollingBackoff } from "./polling-backoff.js";
4
+ import { yieldToEventLoop } from "./yield-to-event-loop.js";
4
5
  export class Worker {
5
6
  runtime;
6
7
  options;
@@ -29,7 +30,6 @@ export class Worker {
29
30
  if (this.stopping)
30
31
  return 0;
31
32
  await this.ensureRegistered();
32
- await this.runtime.repository.heartbeatProcess(this.processId);
33
33
  await this.maintainCachedActivations();
34
34
  let cached = await this.claimCachedActivation();
35
35
  let turn = cached?.turn ?? (await this.runtime.repository.claim(this.processId));
@@ -117,6 +117,7 @@ export class Worker {
117
117
  if (count === 0)
118
118
  break;
119
119
  processed += count;
120
+ await yieldToEventLoop();
120
121
  }
121
122
  return processed;
122
123
  }
@@ -130,8 +131,11 @@ export class Worker {
130
131
  while (!signal.aborted && !this.stopping) {
131
132
  const wakeUp = await this.runtime.watchWakeUp("actors");
132
133
  const processed = await this.runOnce();
134
+ if (signal.aborted || this.stopping)
135
+ break;
133
136
  if (processed > 0) {
134
137
  this.pollingBackoff.reset("work");
138
+ await yieldToEventLoop();
135
139
  continue;
136
140
  }
137
141
  const notified = await wakeUp.wait({
@@ -173,8 +177,6 @@ export class Worker {
173
177
  }
174
178
  }
175
179
  async ensureRegistered() {
176
- if (this.registered)
177
- return;
178
180
  await this.runtime.repository.registerProcess(this.processId, "worker");
179
181
  this.registered = true;
180
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACd,mBAAmB,GACpB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AASrD,MAAM,OAAO,MAAM;IAQE;IACA;IARV,SAAS,GAAG,UAAU,EAAE,CAAA;IACzB,UAAU,GAAG,KAAK,CAAA;IAClB,QAAQ,GAAG,KAAK,CAAA;IACP,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAA;IACjD,cAAc,CAAgB;IAE/C,YACmB,OAA4B,EAC5B,UAAiD,EAAE;QADnD,YAAO,GAAP,OAAO,CAAqB;QAC5B,YAAO,GAAP,OAAO,CAA4C;QAEpE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC;YACvC,2BAA2B,EAAE,IAAI,CAAC,GAAG,CACnC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,EAC5C,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAClD;YACD,2BAA2B,EAAE,IAAI,CAAC,GAAG,CACnC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,EAChD,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAClD;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,EAAE,CACvB,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,EAAE;gBACtD,IAAI,EAAE,QAAQ;gBACd,GAAG,UAAU;aACd,CAAC;SACL,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,kCAAkC;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA0D,EAAE;QACxE,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,CAAA;YAC3B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;YAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC9D,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAA;YACtC,IAAI,MAAM,GAAiC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;YAC7E,IAAI,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;YAChF,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAA;YACnB,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;YACvC,IAAI,aAAa,GAAG,KAAK,CAAA;YACzB,OAAO,IAAI,EAAE,CAAC;gBACZ,IAAI,SAAS,CAAA;gBACb,IAAI,CAAC;oBACH,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;gBACjE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,CAAC,KAAK,YAAY,gBAAgB,CAAC;wBAAE,MAAM,KAAK,CAAA;oBACrD,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;oBACnC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,OAAO;wBAAE,MAAM,KAAK,CAAC,UAAU,CAAA;oBACjE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC;wBAAE,MAAM,KAAK,CAAC,UAAU,CAAA;oBACvE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;oBAC/C,OAAO,SAAS,CAAA;gBAClB,CAAC;gBACD,SAAS,IAAI,CAAC,CAAA;gBACd,IAAI,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpD,MAAM,IAAI,CAAC,iBAAiB,CAAC;wBAC3B,IAAI;wBACJ,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;wBACpE,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;qBAC7D,CAAC,CAAA;oBACF,OAAO,SAAS,CAAA;gBAClB,CAAC;gBACD,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;gBAC7B,MAAM,GAAG;oBACP,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,IAAI;oBACJ,UAAU,EAAE,GAAG;oBACf,OAAO,EACL,MAAM,EAAE,OAAO;wBACf,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gCAAgC;iBACzE,CAAA;gBACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC9C,aAAa;oBACX,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,4BAA4B;wBAC/D,WAAW,CAAC,GAAG,EAAE,GAAG,aAAa;4BAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAA;gBAC3D,IAAI,aAAa;oBAAE,MAAK;gBACxB,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAA;gBACtC,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;oBACzD,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;iBACzC,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM;oBAAE,OAAO,SAAS,CAAA;gBAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBACzF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBAChB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,EAAE;wBACrD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;wBACzC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;wBACrC,SAAS;wBACT,aAAa,EAAE,OAAO;qBACvB,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,SAAS,EAAE,WAAW;iBACvB,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QACtF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAiC,EAAE;QACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAA;QAC3C,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;gBAClC,IAAI,KAAK,KAAK,CAAC;oBAAE,MAAK;gBACtB,SAAS,IAAI,KAAK,CAAA;YACpB,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QACvC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAmB;QAC3B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,qCAAqC,EAAE,CAAA;QAC1D,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YACtC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBACjC,SAAQ;YACV,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACjC,mBAAmB,EAAE,IAAI,CAAC,cAAc,CAAC,2BAA2B;gBACpE,MAAM;aACP,CAAC,CAAA;YACF,IAAI,QAAQ,KAAK,KAAK;gBAAE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;;gBACnD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC3C,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAM;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvF,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QACrC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACzD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACzB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,CAAC,iBAAiB,CAAC;gBAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,SAAS,EAAE,WAAW;aACvB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,IAAI,CAAC,UAAU;YAAE,OAAM;QAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC/D,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;aAC7C,CAAC,CAAA;YACF,IAAI,IAAI;gBAAE,OAAO,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAA;QAC1C,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC7B,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACxD,IACE,GAAG,GAAG,UAAU,CAAC,UAAU;gBAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,mCAAmC,EACzD,CAAC;gBACD,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,SAAS,EAAE,WAAW;iBACvB,CAAC,CAAA;gBACF,SAAQ;YACV,CAAC;YACD,IAAI,GAAG,GAAG,UAAU,CAAC,OAAO;gBAAE,SAAQ;YACtC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC/E,UAAU,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAA;YACnF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC;oBAAE,MAAM,KAAK,CAAA;gBACnD,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,SAAS,EAAE,WAAW;iBACvB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAI/B;QACC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjD,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,IAAiB;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC;gBAAE,MAAM,KAAK,CAAA;QACrD,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,IAAiB,EAAE,KAAc;QAC1D,MAAM,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;QAC/D,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,EAAE;YACtD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC9B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,SAAS;SACV,CAAC,CAAA;QACF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YACjC,KAAK,EAAE,mCAAmC;YAC1C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC9B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;CACF;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,OAAO,CACL,KAAK,YAAY,mBAAmB;QACpC,KAAK,YAAY,yBAAyB;QAC1C,KAAK,YAAY,cAAc,CAChC,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB;IACxC,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;KAChD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,YAAoB,EAAE,MAAoB;IAChE,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QACjD,MAAM,EAAE,gBAAgB,CACtB,OAAO,EACP,GAAG,EAAE;YACH,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,EAAE,CAAA;QACX,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAS,OAIlD;IACC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IACjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,IAAI,cAAuB,CAAA;IAC3B,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAC9F,CAAC,KAAc,EAAE,EAAE;QACjB,cAAc,GAAG,KAAK,CAAA;IACxB,CAAC,CACF,CAAA;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;QAChC,UAAU,CAAC,KAAK,EAAE,CAAA;QAClB,MAAM,SAAS,CAAA;QACf,IAAI,cAAc;YAAE,MAAM,cAAc,CAAA;QACxC,OAAO,MAAM,CAAA;IACf,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,KAAK,EAAE,CAAA;QAClB,MAAM,SAAS,CAAA;IACjB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OAIpC;IACC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAC9C,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,oCAAoC,EAAE,MAAM,CAAC,CAAA;QAC5E,IAAI,MAAM,CAAC,OAAO;YAAE,OAAM;QAC1B,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;YAC1F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC3B,KAAK,EAAE,wCAAwC;gBAC/C,GAAG,UAAU;aACd,CAAC,CAAA;YACF,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function registerEventLoopYield(callback: () => Promise<void>): void;
2
+ export declare function yieldToEventLoop(): Promise<void>;
3
+ //# sourceMappingURL=yield-to-event-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yield-to-event-loop.d.ts","sourceRoot":"","sources":["../src/yield-to-event-loop.ts"],"names":[],"mappings":"AAIA,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAE1E;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhD"}
@@ -0,0 +1,10 @@
1
+ let yieldToHost = () => {
2
+ return new Promise((resolve) => setTimeout(resolve, 0));
3
+ };
4
+ export function registerEventLoopYield(callback) {
5
+ yieldToHost = callback;
6
+ }
7
+ export function yieldToEventLoop() {
8
+ return yieldToHost();
9
+ }
10
+ //# sourceMappingURL=yield-to-event-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yield-to-event-loop.js","sourceRoot":"","sources":["../src/yield-to-event-loop.ts"],"names":[],"mappings":"AAAA,IAAI,WAAW,GAAG,GAAkB,EAAE;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;AACzD,CAAC,CAAA;AAED,MAAM,UAAU,sBAAsB,CAAC,QAA6B;IAClE,WAAW,GAAG,QAAQ,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,WAAW,EAAE,CAAA;AACtB,CAAC"}
package/docs/agents.md CHANGED
@@ -77,8 +77,10 @@ SQLite database. It proves that no update is lost. Add `pg` or `mysql2` when
77
77
  you use PostgreSQL or MySQL.
78
78
 
79
79
  Install the current release. `npm install solid-objects` selects it. Do not
80
- pin a version that you remember from earlier work; the API changed between
81
- releases. The current version is on <https://www.npmjs.com/package/solid-objects>.
80
+ use an API that you remember from a 0.x release; the API changed between 0.x
81
+ releases. From version 1.0, the public API follows
82
+ [semantic versioning](versioning.md). The current version is on
83
+ <https://www.npmjs.com/package/solid-objects>.
82
84
 
83
85
  Create the runtime and its tables at startup:
84
86
 
@@ -206,18 +208,21 @@ Obey these rules in actor code:
206
208
  - Do not call an external API in an operation. Use `this.emit()` and an effect
207
209
  handler.
208
210
  - Write each operation so that it can run again. Delivery is at least once.
211
+ - Repeated lease losses back off but do not become dead letters. Observe
212
+ `activation.lost` and set an application stopping policy if a hard bound is
213
+ required; handler-failure attempt limits do not bound lease loss.
209
214
  - A reminder changes state only when it runs, and it runs only while a process
210
215
  calls `runtime.run(signal)`. Do not compute expiry from the clock in a query;
211
216
  read the state that the reminder committed.
212
217
 
213
218
  Avoid these mistakes:
214
219
 
215
- | Mistake | Correct form |
216
- | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
217
- | `this.schedule({ at, key })` with no operation after it | `this.schedule({ at, key }).expire({ buyer })`. `schedule()` stages a reminder only when you call an operation on its result |
218
- | `this.reject("room full")` or `this.reject(code, message)` | `this.reject("room_full", { message: "The room is full" })` |
219
- | `registerEffect(name, (context, argumentsValue) => ...)` | `registerEffect(name, (argumentsValue, context) => ...)`. The staged arguments come first |
220
- | A worker process that never names the actor class | `runtime.register(TicketSale)` before `runtime.run(signal)`. See step 7 |
220
+ | Mistake | Correct form |
221
+ | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
222
+ | `this.schedule({ at, key })` with no operation after it | `this.schedule({ at, key }).expire({ buyer })`. A `schedule()` call with no operation after it fails the turn with `ScheduleWithoutOperation` |
223
+ | `this.reject("room full")` or `this.reject(code, message)` | `this.reject("room_full", { message: "The room is full" })` |
224
+ | `registerEffect(name, (context, argumentsValue) => ...)` | `registerEffect(name, (argumentsValue, context) => ...)`. The staged arguments come first |
225
+ | A worker process that never names the actor class | `runtime.register(TicketSale)` before `runtime.run(signal)`. See step 7 |
221
226
 
222
227
  [State and lifecycle](state-and-lifecycle.md) and the
223
228
  [public API](api.md) give the full rules.
@@ -331,11 +336,11 @@ When you explain Solid Objects to a user, state these limits:
331
336
  - There are no transactions across actor identities.
332
337
  - Fencing stops a stale activation from a commit, but its code can continue to
333
338
  run.
334
- - The package is pre-1.0. It has no measured scale and no known third-party
335
- production use.
339
+ - Version 1.0 promises a stable public API. It makes no claim of measured scale,
340
+ and no production use by other people is known.
336
341
  - `solid-objects/browser` is a WebSocket client, not the SQL runtime. The
337
342
  browser runtime in step 12 is tested in Chromium only. The Cloudflare backend
338
- is experimental.
343
+ is experimental and is outside the version 1.0 promise.
339
344
 
340
345
  The [correctness contract](correctness.md) is the source for each guarantee.
341
346
 
package/docs/api.md CHANGED
@@ -175,10 +175,30 @@ row per item. It also cannot strand an entry when the runtime coalesces an
175
175
  occurrence. Prefer it for a large queue of interchangeable items. Prefer `key`
176
176
  when one item needs an alarm that you can move on its own.
177
177
 
178
+ #### A schedule call needs an operation
179
+
180
+ `schedule()` returns an object, and the reminder exists only after you call an
181
+ operation on that object. A turn that calls `schedule()` and then calls no
182
+ operation on the result fails with `ScheduleWithoutOperation`. The runtime
183
+ does not retry that turn, and the message becomes a dead letter.
184
+
185
+ ```typescript
186
+ // Wrong. The turn fails.
187
+ this.schedule({ at: holdEnd, key: buyer })
188
+
189
+ // Correct.
190
+ this.schedule({ at: holdEnd, key: buyer }).expire({ buyer })
191
+ ```
192
+
193
+ You can keep the result and call the operation later in the same turn.
194
+
195
+ `observables()` cannot call `schedule()`, with or without an operation. The
196
+ turn that reads the observables fails with `QueryMutatedState`.
197
+
178
198
  #### Cancelling a reminder
179
199
 
180
- `schedule()` returns a `ReminderHandle` (`{ name: string }`) naming the alarm it
181
- armed. `unschedule()` cancels one alarm, by operation, by operation and key, or
200
+ The operation that you call on the result of `schedule()` returns a
201
+ `ReminderHandle` (`{ name: string }`) naming the alarm it armed. `unschedule()` cancels one alarm, by operation, by operation and key, or
182
202
  by that handle. `unscheduleAll()` cancels every key of one operation.
183
203
 
184
204
  ```typescript
@@ -742,7 +762,7 @@ The root exports `SolidObjectsError` and its supported subclasses:
742
762
  - definition and execution failures: `InvalidActor`, `InvalidRejectionCode`,
743
763
  `UnknownActorType`,
744
764
  `UnknownOperation`, `ActorCallCycle`, `QueryMutatedState`,
745
- `StateMigrationError`, `ApplicationWriteForbidden`, `UnknownEffect`, and
765
+ `ScheduleWithoutOperation`, `StateMigrationError`, `ApplicationWriteForbidden`, `UnknownEffect`, and
746
766
  `UnknownCommitAction`;
747
767
  - operational failures: `LostActivation`, `DatabaseDeadlineExceeded`,
748
768
  `UnknownDeadLetter`, `UnknownReminder`, `ReminderNotPaused`, and
@@ -21,11 +21,11 @@ through `runtime.ref(ActorClass, actorId)`. Both validate options immediately.
21
21
  | `maxStateBytes` | `5_242_880` | Positive persisted actor-state byte limit. |
22
22
  | `warnStateBytes` | `131_072` | Positive persisted actor-state byte threshold that reports one warning. |
23
23
  | `maxResultBytes` | `1_048_576` | Positive operation-result byte limit. |
24
- | `maxAttempts` | `5` | Positive maximum operation, effect, and broadcast attempts. |
24
+ | `maxAttempts` | `5` | Positive attempt limit evaluated on handler failure. |
25
25
  | `maxMessagesPerActivationPass` | `50` | Positive integer turn budget before fairness yield. |
26
26
  | `maxActivationDurationMilliseconds` | `5_000` | Positive elapsed-time budget before fairness yield. |
27
27
  | `claimScanLimit` | `100` | Positive integer ready-actor candidates considered per global claim. |
28
- | `retryDelayMilliseconds` | exponential 1-60 seconds | Receives the next attempt number and returns its delay. |
28
+ | `retryDelayMilliseconds` | exponential 1-60 seconds | Receives a retry index; returns milliseconds (see below). |
29
29
 
30
30
  The limits measure normalized JSON encoded as UTF-8. `maxResultBytes` also
31
31
  limits each computed snapshot getter and effect-handler result. Explicit
@@ -36,6 +36,22 @@ names enter the broadcast outbox. `retryDelayMilliseconds` should return a
36
36
  non-negative finite number; an invalid application callback will fail the
37
37
  affected failure path rather than schedule an invalid timestamp.
38
38
 
39
+ Interrupted actor messages use the existing `retryDelayMilliseconds` callback
40
+ on recovery. After the first claimed attempt they are immediately eligible;
41
+ after persisted attempts 2, 3, 4, ... the callback receives 1, 2, 3, ... . Its
42
+ default delays are 1, 2, 4 seconds up to 60 seconds. This is the total claim count,
43
+ including earlier handler failures, not a separate lease-loss counter. The
44
+ availability timestamp is stored transactionally in ready membership, survives
45
+ worker replacement and stale-process cleanup, and keeps the message ahead of
46
+ later messages for that actor. Other actors remain eligible. Custom delays,
47
+ including zero, remain authoritative.
48
+
49
+ Lease loss alone never creates a dead letter, including with `maxAttempts: 1`.
50
+ A handler failure still uses the full attempt count with `maxAttempts` and
51
+ passes that count to `retryDelayMilliseconds`, as before. Applications needing
52
+ a hard retry or elapsed-time bound must observe `activation.lost` and stop or
53
+ intervene. No setting or schema change is required.
54
+
39
55
  `maxStateBytes` is a hard limit that fails the turn. `warnStateBytes` is a soft
40
56
  threshold that keeps the turn. A commit above the threshold reports one
41
57
  `solid_objects.state.large` instrumentation event with the actor type, the actor
@@ -76,6 +92,12 @@ and `false` for a timeout. An older adapter that returns `void` remains
76
92
  compatible and keeps the fast cadence. Wake-ups reduce latency, while database
77
93
  polling remains the correctness path.
78
94
 
95
+ Busy SQL workers and testing drains give the event loop a turn between passes.
96
+ In Node this lets timers and input run even with synchronous SQLite calls.
97
+ An instrumentation callback can abort `runtime.run()` before its next pass.
98
+ This does not interrupt a synchronous handler: responsiveness is bounded by
99
+ one pass, or by a single overlong handler that must return first.
100
+
79
101
  ## Retention and cleanup
80
102
 
81
103
  | Option | Default | Contract |
@@ -50,6 +50,8 @@ These errors normally require a code or deployment correction:
50
50
  reference's `send`, or destroy an actor. Stage delivery with `this.sendTo()`.
51
51
  - `QueryMutatedState`: a field/getter query, snapshot, observable, or payload
52
52
  projection changed state or staged durable work.
53
+ - `ScheduleWithoutOperation`: a turn called `schedule()` and then called no
54
+ operation on the result, so the call stored no reminder.
53
55
  - `ApplicationWriteForbidden`: actor-owned code attempted a write through
54
56
  `guardApplicationDatabase()` outside the fenced commit-action connection.
55
57
  - `InvalidPayload`, `InvalidPayloadBroadcast`, and
@@ -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. The package is pre-1.0.
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. It makes no claim of measured scale.
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. The package is pre-1.0. See [Correctness and delivery semantics](../correctness.md) and [Virtual actors in TypeScript and Node.js](../virtual-actors.md).
358
+ The package requires Node.js 24.4 or newer and supports ESM only. Version 1.0 promises a stable public API. It makes no claim of measured scale. 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
 
@@ -44,21 +44,22 @@ result. When an exporter or observer raises, both runtimes log
44
44
  Delivery is best effort and synchronous callbacks should be short;
45
45
  JavaScript does not await exporters. Telemetry is not a durable audit trail.
46
46
 
47
- | Event | Meaning |
48
- | ------------------------------------------- | ---------------------------------------------------------------------------- |
49
- | `activation.started/completed/failed` | Local actor activation hook lifecycle |
50
- | `message.started/completed/failed/rejected` | One attempt's execution outcome |
51
- | `message.retry` | Failed attempt durably queued for another attempt |
52
- | `dead_letter.created` | Message exhausted retries or failed permanently |
53
- | `commit_action.started/completed/failed` | One registered commit action inside the commit transaction |
54
- | `mailbox.depth` | On-demand diagnostic sample; `depth` is null when the sample is truncated |
55
- | `reminder.enqueued` | Due reminder dispatch; lateness is measured from due time |
56
- | `outbox.age` | Delivery observation; age is time since the item's current availability time |
57
- | `recovery.reclaimed` | A previously claimed, interrupted message begins another attempt |
58
- | `recovery.completed/failed` | Durable effect recovery callback commits or enters the dead-letter queue |
59
- | `snapshot.read` | Authorized snapshot constructed without exposing its contents |
60
- | `realtime.connected/disconnected` | Actor subscription added or removed |
61
- | `payload_broadcast.failed` | One personalized payload failed; `payload` names it |
47
+ | Event | Meaning |
48
+ | ------------------------------------------- | ------------------------------------------------------------------------------------- |
49
+ | `activation.started/completed/failed` | Local actor activation hook lifecycle |
50
+ | `message.started/completed/failed/rejected` | One attempt's execution outcome |
51
+ | `activation.lost` | A message turn lost its activation fence; includes message ID and total attempt count |
52
+ | `message.retry` | Failed attempt durably queued for another attempt |
53
+ | `dead_letter.created` | Message exhausted retries or failed permanently |
54
+ | `commit_action.started/completed/failed` | One registered commit action inside the commit transaction |
55
+ | `mailbox.depth` | On-demand diagnostic sample; `depth` is null when the sample is truncated |
56
+ | `reminder.enqueued` | Due reminder dispatch; lateness is measured from due time |
57
+ | `outbox.age` | Delivery observation; age is time since the item's current availability time |
58
+ | `recovery.reclaimed` | A previously claimed, interrupted message begins another attempt |
59
+ | `recovery.completed/failed` | Durable effect recovery callback commits or enters the dead-letter queue |
60
+ | `snapshot.read` | Authorized snapshot constructed without exposing its contents |
61
+ | `realtime.connected/disconnected` | Actor subscription added or removed |
62
+ | `payload_broadcast.failed` | One personalized payload failed; `payload` names it |
62
63
 
63
64
  Events describe local observations. Concurrent deletion, crashes, and failed
64
65
  exporters can omit events. Never infer exactly-once delivery from event counts.
@@ -230,7 +230,8 @@ for the same time emits nothing.
230
230
 
231
231
  ## Dead letters, retry, and redrive
232
232
 
233
- A message that exhausts its attempts becomes a dead letter. An effect or a
233
+ A handler failure that exhausts its attempts becomes a dead letter.
234
+ Lease loss alone remains pending with [recovery backoff](configuration.md). An effect or a
234
235
  broadcast that exhausts its attempts stays in its own table with
235
236
  `status = 'dead'`. All three are read and retried through one receiver, which
236
237
  carries the kind: