solid-objects 0.16.1 → 0.17.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 (72) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/README.md +11 -2
  3. package/dist/actor-runtime.d.ts +7 -0
  4. package/dist/actor-runtime.d.ts.map +1 -1
  5. package/dist/actor.d.ts +1 -0
  6. package/dist/actor.d.ts.map +1 -1
  7. package/dist/actor.js +3 -0
  8. package/dist/actor.js.map +1 -1
  9. package/dist/cloudflare/engine.d.ts +1 -0
  10. package/dist/cloudflare/engine.d.ts.map +1 -1
  11. package/dist/cloudflare/engine.js +118 -15
  12. package/dist/cloudflare/engine.js.map +1 -1
  13. package/dist/cloudflare/records.d.ts +2 -0
  14. package/dist/cloudflare/records.d.ts.map +1 -1
  15. package/dist/cloudflare/runtime.d.ts +7 -0
  16. package/dist/cloudflare/runtime.d.ts.map +1 -1
  17. package/dist/cloudflare/runtime.js +13 -0
  18. package/dist/cloudflare/runtime.js.map +1 -1
  19. package/dist/configuration.d.ts +10 -0
  20. package/dist/configuration.d.ts.map +1 -1
  21. package/dist/configuration.js.map +1 -1
  22. package/dist/diagnostics.d.ts +37 -0
  23. package/dist/diagnostics.d.ts.map +1 -0
  24. package/dist/diagnostics.js +73 -0
  25. package/dist/diagnostics.js.map +1 -0
  26. package/dist/doctor.js +1 -1
  27. package/dist/doctor.js.map +1 -1
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/realtime.d.ts.map +1 -1
  31. package/dist/realtime.js +14 -1
  32. package/dist/realtime.js.map +1 -1
  33. package/dist/reference.d.ts +11 -0
  34. package/dist/reference.d.ts.map +1 -1
  35. package/dist/reference.js +22 -0
  36. package/dist/reference.js.map +1 -1
  37. package/dist/repository.d.ts +1 -1
  38. package/dist/repository.d.ts.map +1 -1
  39. package/dist/repository.js +7 -6
  40. package/dist/repository.js.map +1 -1
  41. package/dist/runtime.d.ts +8 -0
  42. package/dist/runtime.d.ts.map +1 -1
  43. package/dist/runtime.js +108 -32
  44. package/dist/runtime.js.map +1 -1
  45. package/dist/schema.d.ts.map +1 -1
  46. package/dist/schema.js +20 -5
  47. package/dist/schema.js.map +1 -1
  48. package/dist/serialization.js +3 -5
  49. package/dist/serialization.js.map +1 -1
  50. package/dist/telemetry.d.ts +22 -0
  51. package/dist/telemetry.d.ts.map +1 -0
  52. package/dist/telemetry.js +126 -0
  53. package/dist/telemetry.js.map +1 -0
  54. package/dist/transmit.js +2 -2
  55. package/dist/transmit.js.map +1 -1
  56. package/dist/turn.js +2 -2
  57. package/dist/turn.js.map +1 -1
  58. package/dist/version.d.ts +1 -1
  59. package/dist/version.js +1 -1
  60. package/dist/wake-up-notification.d.ts.map +1 -1
  61. package/dist/wake-up-notification.js +9 -1
  62. package/dist/wake-up-notification.js.map +1 -1
  63. package/docs/agents.md +300 -0
  64. package/docs/api.md +25 -3
  65. package/docs/authorization.md +6 -0
  66. package/docs/comparisons.md +36 -0
  67. package/docs/observability.md +192 -0
  68. package/docs/parity.md +85 -72
  69. package/docs/releasing.md +12 -2
  70. package/docs/virtual-actors.md +242 -0
  71. package/examples/ticket-sale.ts +57 -0
  72. package/package.json +8 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,89 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.17.1 - 2026-10-08
4
+
5
+ - Check holds with `Object.hasOwn` in the README and guide ticket sale
6
+ examples. The `in` operator also matched inherited names, so a buyer named
7
+ `constructor` could not hold a free ticket, and `expire` could add a ticket
8
+ that no hold had taken. `pnpm run test:package` now holds a ticket for that
9
+ buyer.
10
+ - Override `sharp` with 0.35.5 and `source-map-js` with 1.2.2. Two high
11
+ advisories reach the repository only through the development tooling:
12
+ `sharp` through Miniflare and `source-map-js` through Vite and PostCSS. The
13
+ published package does not depend on either.
14
+ - Name the category in the package metadata and the README: Solid Objects is
15
+ a SQL-backed virtual actor library for TypeScript and Node.js. The package
16
+ now declares `https://solidobjects.dev/js` as its homepage and adds the
17
+ `virtual-actors` and `actor-model` keywords.
18
+ - Add `docs/virtual-actors.md`, a category guide with the definition, a small
19
+ example, fit and poor-fit criteria, comparisons, an Orleans concept map, and
20
+ separate compatibility statements for the Node runtime, the browser client,
21
+ the browser runtime, and the Cloudflare backend.
22
+ - Add `docs/agents.md`, a consumer guide for coding agents with setup,
23
+ authorization, effect idempotency, verification, and troubleshooting steps.
24
+ - Add Dapr actors, Temporal, and a comparison vocabulary to
25
+ `docs/comparisons.md`.
26
+ - Add `examples/ticket-sale.ts`. `pnpm run test:package` runs it against the
27
+ packed tarball, and the documentation check fails when the guide no longer
28
+ embeds it.
29
+ - The documentation check now reads every `docs/*.md` file instead of a fixed
30
+ list.
31
+ - Add `context7.json` so that Context7 indexes the consumer documentation and
32
+ skips maintainer files.
33
+ - Record the clean-install artifact proof in `docs/parity.md`. Ruby now has a
34
+ matching `rake quickstart` check.
35
+
36
+ ## 0.17.0 - 2026-10-03
37
+
38
+ - **Breaking:** `solid_objects.activation.started` now fires before the actor's
39
+ `activate()` hook. Before, it fired after a successful hook. The new
40
+ `solid_objects.activation.completed` event takes that meaning, and
41
+ `solid_objects.activation.failed` reports a failed hook. Ruby changes the same
42
+ events. Move a subscriber that reads `activation.started` as a finished
43
+ activation to `activation.completed`.
44
+ - Reference `observe()` and `on()` reject a missing `onEvent` callback with
45
+ `TypeError` before authorization, as Ruby raises `ArgumentError` without a
46
+ block. Tests pin the 1,000-observer limit and observer removal on `close()`.
47
+ The roadmap no longer lists portable observability as future work.
48
+
49
+ - Add the shared telemetry contract `compatibility/telemetry-events.json`. Tests
50
+ compare the attribute allowlist and the attribute keys of each core SQL event
51
+ with Ruby. Activation events carry `ownerId`, commit action events carry
52
+ `activationGeneration`, `reminder.enqueued` carries `messageId` and `attempt`,
53
+ and a truncated `mailbox.depth` sample reports `depth: null`.
54
+ - Port Ruby's query and observable purity tests for each kind of staged work.
55
+ Name `runtime.deadLetters.effects.retry(id)` for a dead transmit, document the
56
+ `actor_diagnostics` authorization, and remove the unused `compatibility/ruby.yml`.
57
+
58
+ - Pin personalized payload isolation, staged-work rejection, and configured
59
+ UTF-8 byte limits with regressions matching Ruby. Share timeout telemetry
60
+ fixtures for wait reasons and activation ownership; document Ruby's fixes
61
+ and its yielding SQLite wait handler in the parity ledger.
62
+
63
+ - Detect observable replacement of staged work even when the intent count is
64
+ unchanged. Compare complete intent snapshots around projection evaluation.
65
+
66
+ - Preserve reserved JSON keys such as `__proto__` as own data properties without
67
+ changing object prototypes. Include them in size limits, state, arguments, and
68
+ retained results; share compatibility fixtures with Ruby.
69
+ - Record Ruby's matching query/projection purity guards, retained background
70
+ results, and the intentional 191-character Ruby / 255-character JS reminder
71
+ name limits in the parity ledger.
72
+
73
+ - Preserve transmit staging order within a source message through a persisted
74
+ effect position, including retries. Schema migration 14 adds `effects.position`;
75
+ run `runtime.install()` before starting upgraded workers. Legacy rows retain
76
+ their existing ID tie-break because their original order cannot be recovered.
77
+ - **Breaking:** reject explicit null transmit arguments, matching Ruby; omission
78
+ still defaults to an empty object. Expand the shared wire fixtures and adapter
79
+ ordering tests.
80
+ - Refresh the parity ledger for authorized message reads and retained background
81
+ results, bulk redrive/audit records, reminder cancellation, and automatic wake-up.
82
+
83
+ - Patch the Cloudflare development tooling's Undici dependency to 7.29.1 to resolve the high-severity WebSocket and TLS advisories reported by CI.
84
+
85
+ - Add portable observability envelopes, metric definitions, actor observers, and bounded authorization-aware diagnostics across SQL runtimes and the Durable Objects host. Isolate failing instrumentation and error loggers from actor work.
86
+
3
87
  ## 0.16.1 - 2026-10-03
4
88
 
5
89
  - Find SQLite effect recovery candidates through the processing effects.
package/README.md CHANGED
@@ -5,6 +5,12 @@
5
5
 
6
6
  **Open Source Durable Objects in your Node app.**
7
7
 
8
+ Solid Objects is a SQL-backed virtual actor library for TypeScript and Node.js,
9
+ with durable state, ordered operations, and automatic activation. Each actor
10
+ has a stable identity, and its state lives in the SQL database that your app
11
+ already uses. [Virtual actors in TypeScript and Node.js](docs/virtual-actors.md)
12
+ explains the model and when to use it.
13
+
8
14
  In a shopping cart, paying twice at the same time is a big problem. The payment provider might time out, and your Node site could be restarting before recovery finishes.
9
15
 
10
16
  To deal with this safely, you often need logic scattered between 7-10 files like database row locks, Redis locks, delayed jobs, retries, and cleanup code to keep that process straight. They are not all large, but they must agree about the same payment state and failure rules. That coordination is the difficult part.
@@ -70,7 +76,7 @@ class TicketSale extends Actor {
70
76
  holds = {}
71
77
 
72
78
  hold({ buyer }) {
73
- if (this.available === 0 || buyer in this.holds) {
79
+ if (this.available === 0 || Object.hasOwn(this.holds, buyer)) {
74
80
  return { held: false, available: this.available }
75
81
  }
76
82
 
@@ -84,7 +90,7 @@ class TicketSale extends Actor {
84
90
  }
85
91
 
86
92
  expire({ buyer }) {
87
- if (!(buyer in this.holds)) return this.available
93
+ if (!Object.hasOwn(this.holds, buyer)) return this.available
88
94
 
89
95
  const remainingHolds = { ...this.holds }
90
96
  delete remainingHolds[buyer]
@@ -254,9 +260,12 @@ There is no exactly-once delivery. Read the
254
260
  ## Read more
255
261
 
256
262
  - [Five-minute Node guide](https://solidobjects.dev/5min/node)
263
+ - [Virtual actors in TypeScript and Node.js](docs/virtual-actors.md)
264
+ - [Guide for coding agents](docs/agents.md)
257
265
  - [Choosing Solid Objects](docs/fit.md)
258
266
  - [Public API](docs/api.md)
259
267
  - [Operations and recovery](docs/operations.md)
268
+ - [Observability and diagnostics](docs/observability.md)
260
269
  - [Detailed architecture](docs/architecture.md)
261
270
  - [Detailed documentation](docs/)
262
271
 
@@ -1,3 +1,5 @@
1
+ import type { EventObserver } from "./telemetry.js";
2
+ import type { ActorDiagnostics, DiagnosticOptions } from "./diagnostics.js";
1
3
  import type { RealtimeManager } from "./realtime.js";
2
4
  import type { Actor, ActorClass } from "./actor.js";
3
5
  import type { ActorReference, ActorReferenceCore, ActorSnapshot, MessageReference } from "./reference.js";
@@ -10,6 +12,11 @@ export interface SnapshotWithIncarnation<ActorType extends Actor> {
10
12
  createdAtMs: number;
11
13
  }
12
14
  export interface ActorRuntime {
15
+ diagnostics(reference: ActorReferenceCore<Actor>, options?: DiagnosticOptions): Promise<ActorDiagnostics>;
16
+ observe(reference: ActorReferenceCore<Actor>, options: {
17
+ onEvent: EventObserver;
18
+ authorizationContext?: SnapshotOptions["authorizationContext"];
19
+ }): Promise<() => void>;
13
20
  ref<ActorType extends Actor>(actorClass: ActorClass<ActorType>, actorId: ActorIdentifier): ActorReference<ActorType>;
14
21
  invoke<Result = JsonValue>(options: {
15
22
  reference: ActorReferenceCore<Actor>;
@@ -1 +1 @@
1
- {"version":3,"file":"actor-runtime.d.ts","sourceRoot":"","sources":["../src/actor-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actor-runtime.d.ts","sourceRoot":"","sources":["../src/actor-runtime.ts"],"names":[],"mappings":"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"}
package/dist/actor.d.ts CHANGED
@@ -128,6 +128,7 @@ export declare abstract class Actor {
128
128
  }): Promise<ScheduledReminder | undefined>;
129
129
  reminders(operation: string): Promise<ScheduledReminder[]>;
130
130
  sendTo<TargetActor extends Actor>(reference: ActorReference<TargetActor>, options?: OutboundMessageOptions): StagedOperations<TargetActor>;
131
+ intentSnapshot(): string;
131
132
  }
132
133
  export {};
133
134
  //# sourceMappingURL=actor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
package/dist/actor.js CHANGED
@@ -306,6 +306,9 @@ export class Actor {
306
306
  intentCount() {
307
307
  return Object.values(this.#intents).reduce((count, intents) => count + intents.length, 0);
308
308
  }
309
+ intentSnapshot() {
310
+ return JSON.stringify(this.#intents);
311
+ }
309
312
  }
310
313
  function isObservableBroadcast(value) {
311
314
  return observableBroadcastMode in value;
package/dist/actor.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"actor.js","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actor.js","sourceRoot":"","sources":["../src/actor.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ export declare class ActorEngine {
41
41
  private completeReminder;
42
42
  private pauseReminder;
43
43
  private administer;
44
+ private diagnostics;
44
45
  private retryDelay;
45
46
  private emit;
46
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/cloudflare/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,UAAU,EAAgB,MAAM,aAAa,CAAA;AA8BlE,OAAO,KAAK,EAIV,SAAS,EAGV,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,EAA2C,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAEzF,OAAO,EAAkB,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,qBAAa,WAAW;IAQpB,QAAQ,CAAC,KAAK,EAAE,YAAY;IAP9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;IAC1E,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,MAAM,CAAmD;gBAGtD,KAAK,EAAE,YAAY,EAC5B,MAAM,EAAE,SAAS,UAAU,EAAE;IAW/B,IAAI,QAAQ,IAAI,kBAAkB,CAEjC;IAEK,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAqE/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B3B,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,OAAO;YA+FD,kBAAkB;YAWlB,WAAW;IAkBzB,OAAO,CAAC,MAAM;YAeA,WAAW;IAuBzB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,aAAa,CAahB;YAES,QAAQ;YA6BR,UAAU;IA4DxB,OAAO,CAAC,OAAO;YAmBD,WAAW;YAeX,OAAO;IAyKrB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,KAAK;IA2Eb,OAAO,CAAC,SAAS;YAwBH,OAAO;IA4HrB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,aAAa;YAUP,UAAU;IA2ExB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,IAAI;CAWb"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/cloudflare/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAS,UAAU,EAAgB,MAAM,aAAa,CAAA;AA8BlE,OAAO,KAAK,EAIV,SAAS,EAGV,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,EAA2C,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAEzF,OAAO,EAAkB,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,qBAAa,WAAW;IAQpB,QAAQ,CAAC,KAAK,EAAE,YAAY;IAP9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8C;IAC1E,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,MAAM,CAAmD;gBAGtD,KAAK,EAAE,YAAY,EAC5B,MAAM,EAAE,SAAS,UAAU,EAAE;IAW/B,IAAI,QAAQ,IAAI,kBAAkB,CAEjC;IAEK,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IA0E/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3B,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,OAAO;YA+FD,kBAAkB;YAWlB,WAAW;IAkBzB,OAAO,CAAC,MAAM;YAeA,WAAW;IAuBzB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,aAAa,CAahB;YAES,QAAQ;YA8BR,UAAU;IA4DxB,OAAO,CAAC,OAAO;YAwBD,WAAW;YAeX,OAAO;IA8LrB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,KAAK;IA2Eb,OAAO,CAAC,SAAS;YAwBH,OAAO;IAmIrB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,iBAAiB;IAsCzB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,aAAa;YAUP,UAAU;IA6ExB,OAAO,CAAC,WAAW;IA2CnB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,IAAI;CAsBb"}
@@ -1,3 +1,5 @@
1
+ import { diagnosticLimit, diagnosticSummary } from "../diagnostics.js";
2
+ import { telemetryEvent, deliverTelemetry } from "../telemetry.js";
1
3
  import { withActorContext, withActorProjection, withRuntime } from "../context.js";
2
4
  import { actorState, hydrateActor, initialStateFor, migrateState, validateDefinition, } from "../definition.js";
3
5
  import { ActorDestroyed, IdempotencyConflict, MailboxFull, NonRetryableError, PayloadTooLarge, QueryMutatedState, Rejected, ReminderNotPaused, Unauthorized, UnknownActorType, UnknownDeadLetter, UnknownEffect, UnknownOperation, UnknownPayloadBroadcast, UnknownReminder, UnsupportedCapability, } from "../errors.js";
@@ -37,7 +39,9 @@ export class ActorEngine {
37
39
  arguments: jsonObject(input.payload.arguments),
38
40
  });
39
41
  this.bind(input);
40
- return this.store.atomic(() => normalizeJson(this.enqueue(input)));
42
+ const message = await this.store.atomic(() => this.enqueue(input));
43
+ this.emit("message.enqueued", { messageId: message.id, attempt: message.attempt });
44
+ return normalizeJson(message);
41
45
  }
42
46
  if (input.method === "message" || input.method === "lookup")
43
47
  return this.readMessage(input);
@@ -55,6 +59,7 @@ export class ActorEngine {
55
59
  this.store.storage.sql.exec("DELETE FROM subscriptions WHERE id = ?", String(input.payload.subscriptionId));
56
60
  this.store.storage.sql.exec("DELETE FROM outboxes WHERE kind = 'broadcast' AND destination = ?", String(input.payload.subscriptionId));
57
61
  });
62
+ this.emit("realtime.disconnected", { actorType: input.actorType, actorId: input.actorId });
58
63
  return null;
59
64
  }
60
65
  if (input.method === "snapshot") {
@@ -87,12 +92,14 @@ export class ActorEngine {
87
92
  expiresAt,
88
93
  }));
89
94
  }
95
+ if (input.method === "subscribe")
96
+ this.emit("realtime.connected", { actorType: input.actorType, actorId: input.actorId });
90
97
  return this.projection({ input, payloadNames });
91
98
  }
92
99
  async pump() {
93
- await this.store.atomic(() => {
100
+ const dispatchedReminders = await this.store.atomic(() => {
94
101
  this.store.prune();
95
- this.scheduleReminders();
102
+ const dispatched = this.scheduleReminders();
96
103
  if (this.actorRunning) {
97
104
  const head = this.store.head();
98
105
  if (head?.status === "claimed") {
@@ -106,7 +113,10 @@ export class ActorEngine {
106
113
  outbox.availableAt = Date.now() + RECOVERY_INTERVAL;
107
114
  this.store.saveOutbox(outbox);
108
115
  }
116
+ return dispatched;
109
117
  });
118
+ for (const reminder of dispatchedReminders)
119
+ this.emit("reminder.enqueued", reminder);
110
120
  const work = [];
111
121
  if (!this.actorRunning)
112
122
  work.push(this.drainActors());
@@ -340,6 +350,7 @@ export class ActorEngine {
340
350
  });
341
351
  if (stableJson(actorState(actor, definition.stateKeys)) !== before || actor.hasIntents())
342
352
  throw new QueryMutatedState("snapshot getters must not mutate state or stage work");
353
+ this.emit("snapshot.read", { actorType: identity.actorType, actorId: identity.actorId });
343
354
  return {
344
355
  snapshot,
345
356
  instanceId: instance?.incarnation ?? "0",
@@ -412,7 +423,12 @@ export class ActorEngine {
412
423
  this.store.saveMessage(message);
413
424
  }
414
425
  this.cached = undefined;
415
- this.emit("actor.destroyed");
426
+ this.emit("actor.destroyed", {
427
+ actorType: instance.actorType,
428
+ actorId: instance.actorId,
429
+ incarnation: instance.incarnation,
430
+ revision: instance.revision,
431
+ });
416
432
  return true;
417
433
  }
418
434
  async drainActors() {
@@ -451,9 +467,11 @@ export class ActorEngine {
451
467
  readReminders: this.readReminders,
452
468
  });
453
469
  if (this.cached?.actor !== actor) {
470
+ this.emit("activation.started", { messageId: message.id, attempt: message.attempt });
454
471
  await withActorContext({ actor, runtime: this.runtime }, () => actor.activate());
455
472
  this.assertCurrent(instance);
456
473
  this.cached = { incarnation: instance.incarnation, actor };
474
+ this.emit("activation.completed", { messageId: message.id, attempt: message.attempt });
457
475
  }
458
476
  }
459
477
  catch (error) {
@@ -473,19 +491,28 @@ export class ActorEngine {
473
491
  };
474
492
  this.store.saveMessage(message);
475
493
  });
494
+ this.emit("activation.failed", {
495
+ messageId: message.id,
496
+ attempt: message.attempt,
497
+ errorName: errorName(error),
498
+ });
476
499
  this.emit("actor.setup_failed", { errorName: errorName(error) });
477
500
  return;
478
501
  }
479
502
  const stateBefore = deepCopy(actorState(actor, definition.stateKeys));
503
+ const startedAt = performance.now();
480
504
  try {
481
505
  await this.store.atomic(() => {
482
506
  this.assertCurrent(instance);
483
507
  message.status = "claimed";
508
+ message.claimedAt = Date.now();
484
509
  message.generation = instance.generation;
485
510
  message.attempt += 1;
486
511
  message.availableAt = Date.now() + RECOVERY_INTERVAL;
487
512
  this.store.saveMessage(message);
488
513
  });
514
+ if (message.attempt > 1 && message.error === null)
515
+ this.emit("recovery.reclaimed", { messageId: message.id, attempt: message.attempt });
489
516
  this.emit("message.started", { messageId: message.id, attempt: message.attempt });
490
517
  const evaluated = await evaluateActorTurn({
491
518
  actor,
@@ -530,7 +557,11 @@ export class ActorEngine {
530
557
  this.stage({ instance: current, message, intents, broadcast: evaluated.broadcast });
531
558
  this.completeReminder(message);
532
559
  });
533
- this.emit("message.completed", { messageId: message.id });
560
+ this.emit("message.completed", {
561
+ messageId: message.id,
562
+ attempt: message.attempt,
563
+ durationMilliseconds: performance.now() - startedAt,
564
+ });
534
565
  }
535
566
  catch (error) {
536
567
  actor.discardIntents();
@@ -591,7 +622,13 @@ export class ActorEngine {
591
622
  this.store.saveMessage(message);
592
623
  }
593
624
  });
625
+ if (message.status === "ready")
626
+ this.emit("message.retry", { messageId: message.id, attempt: message.attempt });
627
+ if (message.status === "dead")
628
+ this.emit("dead_letter.created", { messageId: message.id, attempt: message.attempt });
594
629
  this.emit("message.failed", {
630
+ attempt: message.attempt,
631
+ durationMilliseconds: performance.now() - startedAt,
595
632
  messageId: message.id,
596
633
  errorName: errorName(error),
597
634
  status: message.status,
@@ -697,10 +734,17 @@ export class ActorEngine {
697
734
  return;
698
735
  }
699
736
  try {
737
+ this.emit("outbox.age", {
738
+ messageId: outbox.messageId,
739
+ outboxKind: outbox.kind,
740
+ attempt: outbox.attempt + 1,
741
+ ageMilliseconds: Math.max(0, Date.now() - outbox.availableAt),
742
+ });
700
743
  await this.store.atomic(() => {
701
744
  if (!this.outboxCurrent(outbox, instance))
702
745
  throw new ActorDestroyed("outbox was removed");
703
746
  outbox.status = "claimed";
747
+ outbox.deliveryAvailableAt = outbox.availableAt;
704
748
  outbox.attempt += 1;
705
749
  outbox.availableAt = Date.now() + RECOVERY_INTERVAL;
706
750
  this.store.saveOutbox(outbox);
@@ -841,9 +885,10 @@ export class ActorEngine {
841
885
  });
842
886
  }
843
887
  scheduleReminders() {
888
+ const dispatched = [];
844
889
  const instance = this.store.instance();
845
890
  if (!instance || instance.paused)
846
- return;
891
+ return dispatched;
847
892
  for (const reminder of this.store.rows("SELECT record FROM reminders WHERE status = 'scheduled' AND due_at <= ? ORDER BY due_at LIMIT ?", [Date.now(), this.settings.maxMessagesPerActivationPass])) {
848
893
  try {
849
894
  const message = this.enqueue({
@@ -858,6 +903,11 @@ export class ActorEngine {
858
903
  availableAt: reminder.at,
859
904
  },
860
905
  });
906
+ dispatched.push({
907
+ messageId: message.id,
908
+ attempt: message.attempt,
909
+ latenessMilliseconds: Math.max(0, Date.now() - reminder.at),
910
+ });
861
911
  message.reminder = { name: reminder.name, generation: reminder.generation };
862
912
  this.store.saveMessage(message);
863
913
  reminder.status = "completed";
@@ -869,6 +919,7 @@ export class ActorEngine {
869
919
  break;
870
920
  }
871
921
  }
922
+ return dispatched;
872
923
  }
873
924
  completeReminder(message) {
874
925
  if (!message.reminder)
@@ -901,12 +952,15 @@ export class ActorEngine {
901
952
  async administer(input) {
902
953
  const action = String(input.payload.action);
903
954
  if (!(await this.settings.authorizeAdministration({
904
- action,
905
- resource: `actor:${actorName(input)}`,
955
+ action: action === "diagnostics" ? "inspect" : action,
956
+ resource: action === "diagnostics" ? "actor_diagnostics" : `actor:${actorName(input)}`,
957
+ resourceId: actorName(input),
906
958
  authorizationContext: input.authorizationContext,
907
959
  })))
908
960
  throw new Unauthorized("actor administration is not authorized");
909
961
  this.bind(input);
962
+ if (action === "diagnostics")
963
+ return this.diagnostics(input);
910
964
  if (action === "deadLetters")
911
965
  return normalizeJson({
912
966
  messages: this.store.rows("SELECT record FROM messages WHERE status = 'dead' ORDER BY sequence LIMIT 1000"),
@@ -963,21 +1017,70 @@ export class ActorEngine {
963
1017
  throw new UnsupportedCapability(`unsupported actor administration action ${action}`);
964
1018
  });
965
1019
  }
1020
+ diagnostics(input) {
1021
+ const limit = diagnosticLimit(Number(input.payload.limit ?? 100));
1022
+ const instance = this.store.instance();
1023
+ const now = Date.now();
1024
+ const queries = {
1025
+ mailbox: "SELECT CASE WHEN status = 'claimed' THEN COALESCE(json_extract(record, '$.claimedAt'), json_extract(record, '$.createdAt')) ELSE available_at END AS at FROM messages WHERE status IN ('ready', 'claimed')",
1026
+ outbox: "SELECT CASE WHEN status = 'claimed' THEN COALESCE(json_extract(record, '$.deliveryAvailableAt'), available_at) ELSE available_at END AS at FROM outboxes WHERE status IN ('pending', 'claimed')",
1027
+ reminders: "SELECT due_at AS at FROM reminders WHERE status IN ('scheduled', 'paused')",
1028
+ retries: "SELECT available_at AS at FROM messages WHERE status = 'ready' AND json_extract(record, '$.error') IS NOT NULL",
1029
+ };
1030
+ const summaries = {};
1031
+ for (const [name, query] of Object.entries(queries)) {
1032
+ const rows = this.store.storage.sql
1033
+ .exec(`${query} ORDER BY at LIMIT ?`, limit + 1)
1034
+ .toArray();
1035
+ summaries[name] = normalizeJson(diagnosticSummary({ timestamps: rows.map((row) => row.at), now, limit }));
1036
+ }
1037
+ const mailbox = jsonObject(summaries.mailbox);
1038
+ this.emit("mailbox.depth", {
1039
+ actorType: input.actorType,
1040
+ actorId: input.actorId,
1041
+ count: mailbox.sampled ?? 0,
1042
+ truncated: mailbox.truncated ?? false,
1043
+ ...(mailbox.truncated ? {} : { depth: mailbox.sampled ?? 0 }),
1044
+ });
1045
+ return {
1046
+ actorType: input.actorType,
1047
+ actorId: input.actorId,
1048
+ incarnation: instance?.incarnation ?? null,
1049
+ revision: instance?.revision ?? null,
1050
+ adapter: "durable-objects",
1051
+ occurredAt: new Date(now).toISOString(),
1052
+ limit,
1053
+ ...summaries,
1054
+ recoveryFailures: normalizeJson(diagnosticSummary({ timestamps: [], now, limit })),
1055
+ };
1056
+ }
966
1057
  retryDelay(attempt) {
967
1058
  const delay = this.settings.retryDelayMilliseconds(attempt);
968
1059
  return Number.isFinite(delay) && delay >= 1 ? delay : 1_000;
969
1060
  }
970
1061
  emit(name, attributes = {}) {
1062
+ if (!this.settings.instrumentation)
1063
+ return;
971
1064
  try {
972
- this.settings.instrumentation?.({
973
- name: `solid_objects.${name}`,
974
- occurredAt: new Date().toISOString(),
975
- attributes,
1065
+ const instance = this.store.instance();
1066
+ const event = telemetryEvent({
1067
+ name,
1068
+ adapter: "durable-objects",
1069
+ attributes: {
1070
+ actorType: instance?.actorType ?? null,
1071
+ actorId: instance?.actorId ?? null,
1072
+ incarnation: instance?.incarnation ?? null,
1073
+ revision: instance?.revision ?? null,
1074
+ ...attributes,
1075
+ },
1076
+ });
1077
+ deliverTelemetry({
1078
+ observer: this.settings.instrumentation,
1079
+ event,
1080
+ logger: this.settings.logger,
976
1081
  });
977
1082
  }
978
- catch {
979
- this.settings.logger.error({ event: "solid_objects.instrumentation.failed", name });
980
- }
1083
+ catch { }
981
1084
  }
982
1085
  }
983
1086
  function errorName(error) {