solid-objects 0.12.1 → 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.
Files changed (115) hide show
  1. package/CHANGELOG.md +57 -1
  2. package/README.md +284 -950
  3. package/dist/actor.d.ts +12 -0
  4. package/dist/actor.d.ts.map +1 -1
  5. package/dist/actor.js +25 -2
  6. package/dist/actor.js.map +1 -1
  7. package/dist/broadcast-worker.d.ts +2 -0
  8. package/dist/broadcast-worker.d.ts.map +1 -1
  9. package/dist/broadcast-worker.js +25 -5
  10. package/dist/broadcast-worker.js.map +1 -1
  11. package/dist/browser/components.d.ts.map +1 -1
  12. package/dist/browser/components.js +4 -1
  13. package/dist/browser/components.js.map +1 -1
  14. package/dist/browser/index.d.ts +1 -0
  15. package/dist/browser/index.d.ts.map +1 -1
  16. package/dist/browser/index.js +8 -0
  17. package/dist/browser/index.js.map +1 -1
  18. package/dist/cli.d.ts.map +1 -1
  19. package/dist/cli.js +13 -1
  20. package/dist/cli.js.map +1 -1
  21. package/dist/configuration.d.ts +3 -0
  22. package/dist/configuration.d.ts.map +1 -1
  23. package/dist/configuration.js +3 -0
  24. package/dist/configuration.js.map +1 -1
  25. package/dist/doctor.d.ts.map +1 -1
  26. package/dist/doctor.js +12 -3
  27. package/dist/doctor.js.map +1 -1
  28. package/dist/effect-worker.d.ts +2 -0
  29. package/dist/effect-worker.d.ts.map +1 -1
  30. package/dist/effect-worker.js +25 -5
  31. package/dist/effect-worker.js.map +1 -1
  32. package/dist/examples/sqlite-quickstart.js +83 -0
  33. package/dist/examples/sqlite-quickstart.js.map +1 -0
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/polling-backoff.d.ts +23 -0
  39. package/dist/polling-backoff.d.ts.map +1 -0
  40. package/dist/polling-backoff.js +33 -0
  41. package/dist/polling-backoff.js.map +1 -0
  42. package/dist/records.d.ts +1 -0
  43. package/dist/records.d.ts.map +1 -1
  44. package/dist/reminder-scheduler.d.ts +2 -0
  45. package/dist/reminder-scheduler.d.ts.map +1 -1
  46. package/dist/reminder-scheduler.js +25 -5
  47. package/dist/reminder-scheduler.js.map +1 -1
  48. package/dist/repository.d.ts +5 -1
  49. package/dist/repository.d.ts.map +1 -1
  50. package/dist/repository.js +15 -4
  51. package/dist/repository.js.map +1 -1
  52. package/dist/runtime.d.ts +4 -0
  53. package/dist/runtime.d.ts.map +1 -1
  54. package/dist/runtime.js +71 -6
  55. package/dist/runtime.js.map +1 -1
  56. package/dist/schema.d.ts.map +1 -1
  57. package/dist/schema.js +15 -4
  58. package/dist/schema.js.map +1 -1
  59. package/dist/version.d.ts +1 -1
  60. package/dist/version.js +1 -1
  61. package/dist/wake-up/postgresql.d.ts.map +1 -1
  62. package/dist/wake-up/postgresql.js +12 -11
  63. package/dist/wake-up/postgresql.js.map +1 -1
  64. package/dist/wake-up.d.ts +1 -1
  65. package/dist/wake-up.d.ts.map +1 -1
  66. package/dist/wake-up.js +11 -10
  67. package/dist/wake-up.js.map +1 -1
  68. package/dist/web/assets.d.ts +4 -0
  69. package/dist/web/assets.d.ts.map +1 -0
  70. package/dist/web/assets.js +11 -0
  71. package/dist/web/assets.js.map +1 -0
  72. package/dist/web/index.d.ts +28 -0
  73. package/dist/web/index.d.ts.map +1 -0
  74. package/dist/web/index.js +642 -0
  75. package/dist/web/index.js.map +1 -0
  76. package/dist/web/node.d.ts +3 -0
  77. package/dist/web/node.d.ts.map +1 -0
  78. package/dist/web/node.js +109 -0
  79. package/dist/web/node.js.map +1 -0
  80. package/dist/web/render.d.ts +64 -0
  81. package/dist/web/render.d.ts.map +1 -0
  82. package/dist/web/render.js +331 -0
  83. package/dist/web/render.js.map +1 -0
  84. package/dist/web/store.d.ts +65 -0
  85. package/dist/web/store.d.ts.map +1 -0
  86. package/dist/web/store.js +303 -0
  87. package/dist/web/store.js.map +1 -0
  88. package/dist/web/types.d.ts +82 -0
  89. package/dist/web/types.d.ts.map +1 -0
  90. package/dist/web/types.js +2 -0
  91. package/dist/web/types.js.map +1 -0
  92. package/dist/worker.d.ts +2 -0
  93. package/dist/worker.d.ts.map +1 -1
  94. package/dist/worker.js +25 -5
  95. package/dist/worker.js.map +1 -1
  96. package/docs/api.md +70 -4
  97. package/docs/architecture.md +20 -11
  98. package/docs/authorization.md +12 -3
  99. package/docs/benchmarks.md +163 -0
  100. package/docs/browser-protocol.md +15 -8
  101. package/docs/comparisons.md +36 -0
  102. package/docs/configuration.md +14 -3
  103. package/docs/correctness.md +23 -0
  104. package/docs/dashboard.md +196 -0
  105. package/docs/fit.md +58 -0
  106. package/docs/operations.md +25 -7
  107. package/docs/parity.md +37 -34
  108. package/docs/releasing.md +6 -4
  109. package/docs/state-and-lifecycle.md +10 -0
  110. package/docs/support.md +39 -0
  111. package/examples/failure-recovery/actor.ts +51 -0
  112. package/examples/failure-recovery/demo.ts +233 -0
  113. package/examples/failure-recovery/worker.ts +46 -0
  114. package/examples/sqlite-quickstart.ts +109 -0
  115. package/package.json +26 -4
package/dist/doctor.js CHANGED
@@ -55,7 +55,16 @@ const EXPECTED_COLUMNS = {
55
55
  ],
56
56
  reminders: ["id", "instance_id", "operation", "run_at_ms", "status"],
57
57
  effects: ["id", "message_id", "instance_id", "name", "status", "available_at_ms"],
58
- broadcasts: ["id", "message_id", "instance_id", "state_revision", "status", "available_at_ms"],
58
+ broadcasts: [
59
+ "id",
60
+ "message_id",
61
+ "instance_id",
62
+ "state_revision",
63
+ "observables",
64
+ "invalidations",
65
+ "status",
66
+ "available_at_ms",
67
+ ],
59
68
  dead_letters: ["id", "message_id", "instance_id", "attempts", "error", "retried_message_id"],
60
69
  };
61
70
  class DoctorProbe extends Actor {
@@ -158,11 +167,11 @@ export class Doctor {
158
167
  message: `incompatible schema identity ${wrongIdentity.schema_identity}`,
159
168
  });
160
169
  }
161
- if (versions.join(",") !== "1,2,3,4,5") {
170
+ if (versions.join(",") !== "1,2,3,4,5,6") {
162
171
  return check({
163
172
  name: "schema",
164
173
  status: "fail",
165
- message: `expected schema migrations 1, 2, 3, 4, 5; found ${versions.join(", ")}`,
174
+ message: `expected schema migrations 1, 2, 3, 4, 5, 6; found ${versions.join(", ")}`,
166
175
  });
167
176
  }
168
177
  return check({
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@ export declare class EffectWorker {
4
4
  readonly processId: `${string}-${string}-${string}-${string}-${string}`;
5
5
  private registered;
6
6
  private stopping;
7
+ private readonly pollingBackoff;
7
8
  constructor(runtime: SolidObjectsRuntime);
9
+ get currentPollingIntervalMilliseconds(): number;
8
10
  runOnce(): Promise<number>;
9
11
  runUntilIdle(options?: {
10
12
  maxEffects?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"effect-worker.d.ts","sourceRoot":"","sources":["../src/effect-worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGvD,qBAAa,YAAY;IAKX,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,QAAQ,CAAC,SAAS,sDAAe;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;gBAEK,OAAO,EAAE,mBAAmB;IAEnD,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAc1B,YAAY,CAAC,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpE,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7C,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,OAAO;IAIZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YASb,gBAAgB;CAK/B"}
1
+ {"version":3,"file":"effect-worker.d.ts","sourceRoot":"","sources":["../src/effect-worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAIvD,qBAAa,YAAY;IAMX,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,QAAQ,CAAC,SAAS,sDAAe;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;gBAElB,OAAO,EAAE,mBAAmB;IAYzD,IAAI,kCAAkC,IAAI,MAAM,CAE/C;IAEK,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAc1B,YAAY,CAAC,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpE,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;YASb,gBAAgB;CAK/B"}
@@ -1,12 +1,25 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { withProcessHeartbeat } from "./worker.js";
3
+ import { PollingBackoff } from "./polling-backoff.js";
3
4
  export class EffectWorker {
4
5
  runtime;
5
6
  processId = randomUUID();
6
7
  registered = false;
7
8
  stopping = false;
9
+ pollingBackoff;
8
10
  constructor(runtime) {
9
11
  this.runtime = runtime;
12
+ this.pollingBackoff = new PollingBackoff({
13
+ minimumIntervalMilliseconds: runtime.settings.pollingIntervalMilliseconds,
14
+ maximumIntervalMilliseconds: runtime.settings.idlePollingIntervalMilliseconds,
15
+ onChange: (transition) => runtime.emitInstrumentation("polling.interval_changed", {
16
+ role: "effects",
17
+ ...transition,
18
+ }),
19
+ });
20
+ }
21
+ get currentPollingIntervalMilliseconds() {
22
+ return this.pollingBackoff.currentIntervalMilliseconds;
10
23
  }
11
24
  async runOnce() {
12
25
  if (this.stopping)
@@ -36,15 +49,22 @@ export class EffectWorker {
36
49
  }
37
50
  async run(signal) {
38
51
  await this.ensureRegistered();
52
+ await this.runtime.warnIfPollingIsOnlyCrossProcessWakeUp();
39
53
  while (!signal.aborted && !this.stopping) {
40
54
  const wakeUp = await this.runtime.settings.wakeUp.watch("effects");
41
55
  const processed = await this.runOnce();
42
- if (processed === 0) {
43
- await wakeUp.wait({
44
- timeoutMilliseconds: this.runtime.settings.pollingIntervalMilliseconds,
45
- signal,
46
- });
56
+ if (processed > 0) {
57
+ this.pollingBackoff.reset("work");
58
+ continue;
47
59
  }
60
+ const notified = await wakeUp.wait({
61
+ timeoutMilliseconds: this.pollingBackoff.currentIntervalMilliseconds,
62
+ signal,
63
+ });
64
+ if (notified === false)
65
+ this.pollingBackoff.recordIdle();
66
+ else
67
+ this.pollingBackoff.reset("wake_up");
48
68
  }
49
69
  await this.stop();
50
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"effect-worker.js","sourceRoot":"","sources":["../src/effect-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"effect-worker.js","sourceRoot":"","sources":["../src/effect-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import assert from "node:assert/strict";
2
+ import { existsSync } from "node:fs";
3
+ import { mkdtemp, rm } from "node:fs/promises";
4
+ import { tmpdir } from "node:os";
5
+ import { join, resolve } from "node:path";
6
+ import { fileURLToPath } from "node:url";
7
+ import { Actor, createRuntime } from "solid-objects";
8
+ import { sqlite } from "solid-objects/database/sqlite";
9
+ class Counter extends Actor {
10
+ static actorType = "QuickstartCounter";
11
+ count = 0;
12
+ increment() {
13
+ this.count += 1;
14
+ return this.count;
15
+ }
16
+ async pause({ milliseconds }) {
17
+ const startedAt = performance.now();
18
+ await new Promise((resolvePromise) => setTimeout(resolvePromise, milliseconds));
19
+ return { startedAt, finishedAt: performance.now() };
20
+ }
21
+ }
22
+ export async function runQuickstart(options = {}) {
23
+ const directory = await mkdtemp(join(tmpdir(), "solid-objects-quickstart-"));
24
+ const databasePath = join(directory, "state.sqlite3");
25
+ const runtime = createRuntime({
26
+ database: sqlite({ path: databasePath }),
27
+ workerCount: 2,
28
+ effectWorkerCount: 0,
29
+ reminderSchedulerCount: 0,
30
+ retentionIntervalMilliseconds: 0,
31
+ deadProcessCleanupIntervalMilliseconds: 0,
32
+ authorizeMessage: () => true,
33
+ authorizeQuery: () => true,
34
+ });
35
+ const shutdown = new AbortController();
36
+ const abort = () => shutdown.abort(options.signal?.reason);
37
+ options.signal?.addEventListener("abort", abort, { once: true });
38
+ let running;
39
+ let sameIdentityFinalState = 0;
40
+ let independentIdentitiesOverlapped = false;
41
+ try {
42
+ runtime.register(Counter);
43
+ await runtime.install();
44
+ running = runtime.run(shutdown.signal);
45
+ const counter = runtime.ref(Counter, "room-1");
46
+ const results = await Promise.all(Array.from({ length: 25 }, () => counter.increment()));
47
+ assert.deepEqual([...results].sort((left, right) => left - right), Array.from({ length: 25 }, (_value, index) => index + 1));
48
+ sameIdentityFinalState = await counter.count;
49
+ assert.equal(sameIdentityFinalState, 25);
50
+ const pauses = await Promise.all([
51
+ runtime.ref(Counter, "room-2").send.pause({ milliseconds: 100 }),
52
+ runtime.ref(Counter, "room-3").send.pause({ milliseconds: 100 }),
53
+ ]);
54
+ const windows = await Promise.all(pauses.map((message) => message.wait({ timeoutMilliseconds: 5_000 })));
55
+ const firstWindow = windows[0];
56
+ const secondWindow = windows[1];
57
+ if (!firstWindow || !secondWindow)
58
+ throw new Error("two execution windows are required");
59
+ independentIdentitiesOverlapped =
60
+ firstWindow.startedAt < secondWindow.finishedAt &&
61
+ secondWindow.startedAt < firstWindow.finishedAt;
62
+ assert.equal(independentIdentitiesOverlapped, true);
63
+ }
64
+ finally {
65
+ shutdown.abort();
66
+ await running;
67
+ await runtime.close();
68
+ options.signal?.removeEventListener("abort", abort);
69
+ await rm(directory, { recursive: true });
70
+ }
71
+ assert.equal(existsSync(directory), false);
72
+ const write = options.write ?? ((value) => process.stdout.write(value));
73
+ write(`${JSON.stringify({
74
+ sameIdentityCalls: 25,
75
+ sameIdentityFinalState,
76
+ independentIdentitiesOverlapped,
77
+ temporaryStateRemoved: true,
78
+ }, null, 2)}\n`);
79
+ }
80
+ if (process.argv[1] && fileURLToPath(import.meta.url) === resolve(process.argv[1])) {
81
+ await runQuickstart();
82
+ }
83
+ //# sourceMappingURL=sqlite-quickstart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-quickstart.js","sourceRoot":"","sources":["../../examples/sqlite-quickstart.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { Actor, type ActorClass, type ActorIntents, type CommitActionIntent, type EffectIntent, type OutboundMessageIntent, type OutboundMessageOptions, type PayloadBroadcasts, type PayloadBroadcastValue, type ReminderIntent, type ReminderOptions, } from "./actor.js";
1
+ export { Actor, broadcastInvalidation, broadcastValue, type ActorClass, type ActorIntents, type CommitActionIntent, type EffectIntent, type OutboundMessageIntent, type OutboundMessageOptions, type ObservableBroadcast, type PayloadBroadcasts, type PayloadBroadcastValue, type ReminderIntent, type ReminderOptions, } from "./actor.js";
2
2
  export { configure, createRuntime, SolidObjectsRuntime } from "./runtime.js";
3
3
  export { VERSION } from "./version.js";
4
4
  export { guardApplicationDatabase } from "./application-database.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Actor, } from "./actor.js";
1
+ export { Actor, broadcastInvalidation, broadcastValue, } from "./actor.js";
2
2
  export { configure, createRuntime, SolidObjectsRuntime } from "./runtime.js";
3
3
  export { VERSION } from "./version.js";
4
4
  export { guardApplicationDatabase } from "./application-database.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAWN,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,MAAM,EAAsB,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EACL,eAAe,GAMhB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EACL,sBAAsB,GAKvB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,wBAAwB,EACxB,eAAe,GAIhB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,iBAAiB,EAAmB,MAAM,mBAAmB,CAAA;AACtE,OAAO,EACL,cAAc,GAKf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,MAAM,GAKP,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,qBAAqB,GAOtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,gBAAgB,GAIjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,sBAAsB,GAIvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,gBAAgB,GAQjB,MAAM,gBAAgB,CAAA;AA6BvB,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EAGrB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,qBAAqB,EACrB,cAAc,GAYf,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,MAAM,EAAsB,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EACL,eAAe,GAMhB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EACL,sBAAsB,GAKvB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,wBAAwB,EACxB,eAAe,GAIhB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,iBAAiB,EAAmB,MAAM,mBAAmB,CAAA;AACtE,OAAO,EACL,cAAc,GAKf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,MAAM,GAKP,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,qBAAqB,GAOtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,gBAAgB,GAIjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,sBAAsB,GAIvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,gBAAgB,GAQjB,MAAM,gBAAgB,CAAA;AA6BvB,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EAGrB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAA"}
@@ -0,0 +1,23 @@
1
+ export type PollingBackoffReason = "idle" | "wake_up" | "work";
2
+ export interface PollingBackoffTransition {
3
+ previousIntervalMilliseconds: number;
4
+ currentIntervalMilliseconds: number;
5
+ reason: PollingBackoffReason;
6
+ }
7
+ export interface PollingBackoffOptions {
8
+ minimumIntervalMilliseconds: number;
9
+ maximumIntervalMilliseconds: number;
10
+ onChange?: (transition: PollingBackoffTransition) => void;
11
+ }
12
+ export declare class PollingBackoff {
13
+ private intervalMilliseconds;
14
+ private readonly minimumIntervalMilliseconds;
15
+ private readonly maximumIntervalMilliseconds;
16
+ private readonly onChange;
17
+ constructor(options: PollingBackoffOptions);
18
+ get currentIntervalMilliseconds(): number;
19
+ recordIdle(): void;
20
+ reset(reason: Exclude<PollingBackoffReason, "idle">): void;
21
+ private change;
22
+ }
23
+ //# sourceMappingURL=polling-backoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polling-backoff.d.ts","sourceRoot":"","sources":["../src/polling-backoff.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;AAE9D,MAAM,WAAW,wBAAwB;IACvC,4BAA4B,EAAE,MAAM,CAAA;IACpC,2BAA2B,EAAE,MAAM,CAAA;IACnC,MAAM,EAAE,oBAAoB,CAAA;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,2BAA2B,EAAE,MAAM,CAAA;IACnC,2BAA2B,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,wBAAwB,KAAK,IAAI,CAAA;CAC1D;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,oBAAoB,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAQ;IACpD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAQ;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8D;gBAE3E,OAAO,EAAE,qBAAqB;IAU1C,IAAI,2BAA2B,IAAI,MAAM,CAExC;IAED,UAAU,IAAI,IAAI;IAIlB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,IAAI;IAI1D,OAAO,CAAC,MAAM;CAUf"}
@@ -0,0 +1,33 @@
1
+ export class PollingBackoff {
2
+ intervalMilliseconds;
3
+ minimumIntervalMilliseconds;
4
+ maximumIntervalMilliseconds;
5
+ onChange;
6
+ constructor(options) {
7
+ this.minimumIntervalMilliseconds = options.minimumIntervalMilliseconds;
8
+ this.intervalMilliseconds = options.minimumIntervalMilliseconds;
9
+ this.maximumIntervalMilliseconds = Math.max(options.minimumIntervalMilliseconds, options.maximumIntervalMilliseconds);
10
+ this.onChange = options.onChange;
11
+ }
12
+ get currentIntervalMilliseconds() {
13
+ return this.intervalMilliseconds;
14
+ }
15
+ recordIdle() {
16
+ this.change(Math.min(this.intervalMilliseconds * 2, this.maximumIntervalMilliseconds), "idle");
17
+ }
18
+ reset(reason) {
19
+ this.change(this.minimumIntervalMilliseconds, reason);
20
+ }
21
+ change(intervalMilliseconds, reason) {
22
+ if (intervalMilliseconds === this.intervalMilliseconds)
23
+ return;
24
+ const previousIntervalMilliseconds = this.intervalMilliseconds;
25
+ this.intervalMilliseconds = intervalMilliseconds;
26
+ this.onChange?.({
27
+ previousIntervalMilliseconds,
28
+ currentIntervalMilliseconds: intervalMilliseconds,
29
+ reason,
30
+ });
31
+ }
32
+ }
33
+ //# sourceMappingURL=polling-backoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polling-backoff.js","sourceRoot":"","sources":["../src/polling-backoff.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,cAAc;IACjB,oBAAoB,CAAQ;IACnB,2BAA2B,CAAQ;IACnC,2BAA2B,CAAQ;IACnC,QAAQ,CAA8D;IAEvF,YAAY,OAA8B;QACxC,IAAI,CAAC,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAA;QACtE,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,2BAA2B,CAAA;QAC/D,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,GAAG,CACzC,OAAO,CAAC,2BAA2B,EACnC,OAAO,CAAC,2BAA2B,CACpC,CAAA;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAClC,CAAC;IAED,IAAI,2BAA2B;QAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAA;IAClC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,EAAE,IAAI,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC,CAAA;IAChG,CAAC;IAED,KAAK,CAAC,MAA6C;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAA;IACvD,CAAC;IAEO,MAAM,CAAC,oBAA4B,EAAE,MAA4B;QACvE,IAAI,oBAAoB,KAAK,IAAI,CAAC,oBAAoB;YAAE,OAAM;QAC9D,MAAM,4BAA4B,GAAG,IAAI,CAAC,oBAAoB,CAAA;QAC9D,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,4BAA4B;YAC5B,2BAA2B,EAAE,oBAAoB;YACjD,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;CACF"}
package/dist/records.d.ts CHANGED
@@ -128,6 +128,7 @@ export interface BroadcastRow {
128
128
  actor_id: string;
129
129
  state_revision: number | bigint;
130
130
  observables: string;
131
+ invalidations: string | null;
131
132
  status: "pending" | "processing" | "delivered" | "dead";
132
133
  attempt_count: number | bigint;
133
134
  available_at_ms: number | bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../src/records.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@ export declare class ReminderScheduler {
4
4
  readonly processId: `${string}-${string}-${string}-${string}-${string}`;
5
5
  private registered;
6
6
  private stopping;
7
+ private readonly pollingBackoff;
7
8
  constructor(runtime: SolidObjectsRuntime);
9
+ get currentPollingIntervalMilliseconds(): number;
8
10
  runOnce(options?: {
9
11
  now?: Date;
10
12
  }): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"reminder-scheduler.d.ts","sourceRoot":"","sources":["../src/reminder-scheduler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,QAAQ,CAAC,SAAS,sDAAe;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;gBAEK,OAAO,EAAE,mBAAmB;IAEnD,OAAO,CAAC,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAmCtD,YAAY,CAAC,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAWtE,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7C,eAAe,IAAI,IAAI;IAIvB,OAAO,IAAI,OAAO;IAIZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YASb,gBAAgB;CAK/B"}
1
+ {"version":3,"file":"reminder-scheduler.d.ts","sourceRoot":"","sources":["../src/reminder-scheduler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGvD,qBAAa,iBAAiB;IAMhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,QAAQ,CAAC,SAAS,sDAAe;IACjC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;gBAElB,OAAO,EAAE,mBAAmB;IAYzD,IAAI,kCAAkC,IAAI,MAAM,CAE/C;IAEK,OAAO,CAAC,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAmCtD,YAAY,CAAC,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAWtE,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;YASb,gBAAgB;CAK/B"}
@@ -1,12 +1,25 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { UnknownOperation } from "./errors.js";
3
+ import { PollingBackoff } from "./polling-backoff.js";
3
4
  export class ReminderScheduler {
4
5
  runtime;
5
6
  processId = randomUUID();
6
7
  registered = false;
7
8
  stopping = false;
9
+ pollingBackoff;
8
10
  constructor(runtime) {
9
11
  this.runtime = runtime;
12
+ this.pollingBackoff = new PollingBackoff({
13
+ minimumIntervalMilliseconds: runtime.settings.pollingIntervalMilliseconds,
14
+ maximumIntervalMilliseconds: runtime.settings.idlePollingIntervalMilliseconds,
15
+ onChange: (transition) => runtime.emitInstrumentation("polling.interval_changed", {
16
+ role: "reminders",
17
+ ...transition,
18
+ }),
19
+ });
20
+ }
21
+ get currentPollingIntervalMilliseconds() {
22
+ return this.pollingBackoff.currentIntervalMilliseconds;
10
23
  }
11
24
  async runOnce(options = {}) {
12
25
  if (this.stopping)
@@ -58,15 +71,22 @@ export class ReminderScheduler {
58
71
  }
59
72
  async run(signal) {
60
73
  await this.ensureRegistered();
74
+ await this.runtime.warnIfPollingIsOnlyCrossProcessWakeUp();
61
75
  while (!signal.aborted && !this.stopping) {
62
76
  const wakeUp = await this.runtime.settings.wakeUp.watch("reminders");
63
77
  const processed = await this.runOnce();
64
- if (processed === 0) {
65
- await wakeUp.wait({
66
- timeoutMilliseconds: this.runtime.settings.pollingIntervalMilliseconds,
67
- signal,
68
- });
78
+ if (processed > 0) {
79
+ this.pollingBackoff.reset("work");
80
+ continue;
69
81
  }
82
+ const notified = await wakeUp.wait({
83
+ timeoutMilliseconds: this.pollingBackoff.currentIntervalMilliseconds,
84
+ signal,
85
+ });
86
+ if (notified === false)
87
+ this.pollingBackoff.recordIdle();
88
+ else
89
+ this.pollingBackoff.reset("wake_up");
70
90
  }
71
91
  await this.stop();
72
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reminder-scheduler.js","sourceRoot":"","sources":["../src/reminder-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reminder-scheduler.js","sourceRoot":"","sources":["../src/reminder-scheduler.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export declare class Repository {
27
27
  rows: ProcessRow[];
28
28
  staleAtMilliseconds: number;
29
29
  }>;
30
+ hasLiveProcessOutsideCurrentHostProcess(): Promise<boolean>;
30
31
  cleanupStaleProcesses(): Promise<number>;
31
32
  private releaseProcessOwnership;
32
33
  enqueue(input: EnqueueInput): Promise<MessageRow>;
@@ -45,7 +46,10 @@ export declare class Repository {
45
46
  state: Record<string, JsonValue>;
46
47
  stateVersion: number;
47
48
  result: JsonValue;
48
- broadcastObservables?: Record<string, JsonValue>;
49
+ broadcastProjection?: {
50
+ observables: Record<string, JsonValue>;
51
+ invalidations: readonly string[];
52
+ };
49
53
  intents: ActorIntents;
50
54
  executeCommitAction(intent: ActorIntents["commitActions"][number], connection: DatabaseConnection): Promise<void>;
51
55
  }): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,16 @@ export class Repository {
63
63
  };
64
64
  });
65
65
  }
66
+ async hasLiveProcessOutsideCurrentHostProcess() {
67
+ return this.settings.database.connection(async (connection) => {
68
+ const now = await connection.nowMilliseconds();
69
+ const row = await connection.get(`SELECT 1 AS present FROM ${this.table("processes")}
70
+ WHERE shutdown_state <> 'stopped' AND heartbeat_at_ms > ?
71
+ AND (hostname <> ? OR host_process_id <> ?)
72
+ LIMIT 1`, [now - this.settings.processAliveThresholdMilliseconds, hostname(), process.pid]);
73
+ return row !== undefined;
74
+ });
75
+ }
66
76
  async cleanupStaleProcesses() {
67
77
  return this.settings.database.transaction(async (connection) => {
68
78
  const now = await connection.nowMilliseconds();
@@ -472,18 +482,19 @@ export class Repository {
472
482
  : { idempotencyKey: outbound.idempotencyKey }),
473
483
  });
474
484
  }
475
- if (input.broadcastObservables !== undefined) {
485
+ if (input.broadcastProjection !== undefined) {
476
486
  await connection.run(`INSERT INTO ${this.table("broadcasts")}
477
487
  (id, message_id, instance_id, actor_type, actor_id, state_revision, observables,
478
- status, available_at_ms)
479
- VALUES (?, ?, ?, ?, ?, ?, ?, 'pending', ?)`, [
488
+ invalidations, status, available_at_ms)
489
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'pending', ?)`, [
480
490
  randomUUID(),
481
491
  turn.message.id,
482
492
  turn.instance.id,
483
493
  turn.message.actor_type,
484
494
  turn.message.actor_id,
485
495
  turn.message.sequence,
486
- JSON.stringify(input.broadcastObservables),
496
+ JSON.stringify(input.broadcastProjection.observables),
497
+ JSON.stringify(input.broadcastProjection.invalidations),
487
498
  now,
488
499
  ]);
489
500
  }