@substrat-run/kernel 0.118.0 → 0.119.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 (43) hide show
  1. package/dist/capability.d.ts +22 -1
  2. package/dist/capability.d.ts.map +1 -1
  3. package/dist/capability.js +20 -0
  4. package/dist/capability.js.map +1 -1
  5. package/dist/connector-calls.d.ts +205 -0
  6. package/dist/connector-calls.d.ts.map +1 -0
  7. package/dist/connector-calls.js +192 -0
  8. package/dist/connector-calls.js.map +1 -0
  9. package/dist/idempotency.d.ts +7 -1
  10. package/dist/idempotency.d.ts.map +1 -1
  11. package/dist/idempotency.js +8 -2
  12. package/dist/idempotency.js.map +1 -1
  13. package/dist/index.d.ts +11 -6
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +6 -3
  16. package/dist/index.js.map +1 -1
  17. package/dist/peer.d.ts +132 -0
  18. package/dist/peer.d.ts.map +1 -0
  19. package/dist/peer.js +177 -0
  20. package/dist/peer.js.map +1 -0
  21. package/dist/permission-checker.d.ts +1 -1
  22. package/dist/permission-checker.d.ts.map +1 -1
  23. package/dist/permission-checker.js +4 -1
  24. package/dist/permission-checker.js.map +1 -1
  25. package/dist/platform-sweep.d.ts +116 -1
  26. package/dist/platform-sweep.d.ts.map +1 -1
  27. package/dist/platform-sweep.js +209 -0
  28. package/dist/platform-sweep.js.map +1 -1
  29. package/dist/scope-host.d.ts +228 -7
  30. package/dist/scope-host.d.ts.map +1 -1
  31. package/dist/scope-host.js.map +1 -1
  32. package/dist/system-switch.d.ts +38 -0
  33. package/dist/system-switch.d.ts.map +1 -1
  34. package/dist/system-switch.js +50 -3
  35. package/dist/system-switch.js.map +1 -1
  36. package/dist/timeline.d.ts.map +1 -1
  37. package/dist/timeline.js +30 -3
  38. package/dist/timeline.js.map +1 -1
  39. package/dist/vertical-events.d.ts +162 -0
  40. package/dist/vertical-events.d.ts.map +1 -0
  41. package/dist/vertical-events.js +348 -0
  42. package/dist/vertical-events.js.map +1 -0
  43. package/package.json +2 -2
@@ -1,4 +1,5 @@
1
1
  import type { AccessLogEntry, ConnectionId, MigrationProgress, MigrationStraggler, PlatformActorId, Scope, ScopeId, TenantId, DrainedEvent } from '@substrat-run/contracts';
2
+ import type { ExportReadInput, ExportedBatch, ImportBatch, ImportResult, ImportState, WantedEvent } from '@substrat-run/contracts';
2
3
  import type { ExecutorDrainReport, FetchLike, ScopeHost, SweepRunInput } from './scope-host.js';
3
4
  /**
4
5
  * A connector's reconcile sweep — the unit `runPlatformSweep` calls per live
@@ -212,6 +213,17 @@ export interface PlatformSweepOptions {
212
213
  eventSink?: EventSink;
213
214
  /** Events drained per scope per pass. Default 200. */
214
215
  eventDrainBatch?: number;
216
+ /**
217
+ * Deliver cross-vertical events (#1705). For every active primary scope whose running code
218
+ * imports from another vertical, resolve that vertical's instance in the SAME tenant, read
219
+ * its outbox after the watermark the consumer holds, and hand the batch to the consumer.
220
+ *
221
+ * UNSET skips the phase, and opting in is deliberate. On the shared control plane this host's
222
+ * own namespace is the module-less placeholder, so the default reach would construct an empty
223
+ * DO per active scope per tick and report a fleet with no edges. The control plane opts in
224
+ * with a reach over `/internal`. A self-host, whose host IS the deployment, opts in with `{}`.
225
+ */
226
+ crossVertical?: CrossVerticalOptions;
215
227
  /** Rows shipped (and pruned) per pass. Default 500. */
216
228
  accessLogBatch?: number;
217
229
  /**
@@ -477,9 +489,11 @@ export interface PlatformSweepReport {
477
489
  accessLog: AccessLogSweepReport | null;
478
490
  /** What the event drain shipped this pass (#1334). Null when no sink is bound. */
479
491
  eventDrain: EventDrainReport | null;
492
+ /** Every cross-vertical edge this pass looked at (#1705). Null when the phase is off. */
493
+ crossVertical?: CrossVerticalReport | null;
480
494
  /** Per-unit failures; the pass records and steps over each rather than aborting. */
481
495
  errors: {
482
- kind: 'drain' | 'sweep' | 'gc' | 'reap' | 'reap-tenant' | 'migrate' | 'platform-request' | 'provision-reconcile' | 'schedule' | 'freshness' | 'access-log' | 'event-drain';
496
+ kind: 'drain' | 'sweep' | 'gc' | 'reap' | 'reap-tenant' | 'migrate' | 'platform-request' | 'provision-reconcile' | 'schedule' | 'freshness' | 'access-log' | 'event-drain' | 'vertical-events';
483
497
  id: string;
484
498
  error: string;
485
499
  }[];
@@ -522,6 +536,107 @@ export interface EventDrainSkipped {
522
536
  /** The first of them, oldest first; capped (`UNDRAINED_SKIPPED_IDS`), so `count` may be larger. */
523
537
  eventIds: string[];
524
538
  }
539
+ /** How the cross-vertical phase reaches the two scopes of an edge (#1705). */
540
+ export interface CrossVerticalReach {
541
+ /**
542
+ * The listed scopes whose RUNNING code may import anything, found WITHOUT opening one.
543
+ *
544
+ * This is what keeps the phase off the fleet. It runs on a cron over every active scope,
545
+ * and each per-scope call is a Durable Object wake (plus an `/internal` hop on the hosted
546
+ * path). Asking every scope "do you import?" would be O(fleet) calls per tick even with no
547
+ * edge anywhere. The answer is a code fact: a module declares `consumes: [{ from }]`, and a
548
+ * push carries it in the version's permission registry (`imports`). So it is read where the
549
+ * code is described, never from the scope. A scope this drops is never called.
550
+ *
551
+ * Optional. Absent, the default applies: this host's own registered modules
552
+ * (`ScopeHost.registeredImports`). A host that imports nothing gets no candidates; one that
553
+ * does gets every listed scope, which is right where one host is the deployment for all of
554
+ * them (a self-host). The control plane passes the registry's answer per scope.
555
+ */
556
+ candidates?(scopes: readonly Scope[]): Promise<readonly Scope[]> | readonly Scope[];
557
+ /** The consumer's running imports and its watermark per producer. */
558
+ importState(tenantId: TenantId, scopeId: ScopeId): Promise<ImportState>;
559
+ /** The producer's release after a watermark, decided by the producer's own code. */
560
+ readExports(tenantId: TenantId, scopeId: ScopeId, input: ExportReadInput): Promise<ExportedBatch>;
561
+ /** Hand a batch to the consumer, which applies it under its watermark's compare-and-set. */
562
+ deliver(tenantId: TenantId, scopeId: ScopeId, batch: ImportBatch): Promise<ImportResult>;
563
+ }
564
+ export interface CrossVerticalOptions {
565
+ /**
566
+ * How the two sides are reached. Defaults to this host's own verbs: `admin.importState`,
567
+ * `admin.readExportedEvents` and `deliverToPeer`. That is right when one host serves both
568
+ * scopes. Overridden where they live in different deployments: the control plane reaches
569
+ * each over `/internal`, and a two-deployment dev setup routes by scope.
570
+ */
571
+ reach?: CrossVerticalReach;
572
+ /** Events one edge moves per pass, at most. Default 200. */
573
+ budget?: number;
574
+ /**
575
+ * Consumer scopes one pass visits, at most. Default {@link CROSS_VERTICAL_CONSUMERS_PER_PASS}.
576
+ * The rest are `deferred` to the next pass, not dropped: their watermarks hold, and their
577
+ * producers' outboxes keep the backlog. The window starts at a random point and wraps, the
578
+ * provision reconcile's rule (#1653), so consumers that fail on every pass cannot hold the
579
+ * same slots forever. `0` visits none, which makes it the pause switch.
580
+ */
581
+ maxConsumers?: number;
582
+ /** Where the window starts, in [0, 1). `Math.random` unless given, and injectable to test fairness. */
583
+ rng?: () => number;
584
+ }
585
+ /**
586
+ * How many consumer scopes one pass of the cross-vertical phase visits, by default (#1705).
587
+ *
588
+ * Per visited consumer a pass costs one `importState` call, then per source it imports from,
589
+ * one `readExportedEvents` on the producer and, only when something is new, one `deliverToPeer`.
590
+ * Each call is one Durable Object round trip, plus an `/internal` hop when hosted. So a pass
591
+ * is bounded by `maxConsumers × (1 + 2 × sources)` scope calls, and with no candidates it
592
+ * makes none.
593
+ */
594
+ export declare const CROSS_VERTICAL_CONSUMERS_PER_PASS = 100;
595
+ /**
596
+ * One edge's pass (#1705).
597
+ *
598
+ * - `delivered`: a batch was applied (its events delivered, dead-lettered or withheld).
599
+ * - `idle`: nothing new since the watermark.
600
+ * - `paused`: one side refused the other. The producer's principal check or the consumer's
601
+ * door answered no, so nothing moved and the backlog waits in the producer's outbox.
602
+ * - `unresolved`: the platform could not name both ends. The producer is not installed in
603
+ * the tenant, or either vertical has more than one primary instance there.
604
+ * - `stale`: the consumer's watermark moved under this pass, and the batch was refused.
605
+ * - `failed`: a transport or host error. Also in `errors`.
606
+ */
607
+ export interface CrossVerticalEdge {
608
+ tenantId: TenantId;
609
+ consumer: {
610
+ scopeId: ScopeId;
611
+ vertical: string;
612
+ };
613
+ producer: {
614
+ vertical: string;
615
+ scopeId: ScopeId | null;
616
+ };
617
+ state: 'delivered' | 'idle' | 'paused' | 'unresolved' | 'stale' | 'failed';
618
+ delivered: number;
619
+ deadLettered: number;
620
+ withheld: number;
621
+ duplicates: number;
622
+ /** The sentence a person reads. Set on every state but `delivered` and `idle`. */
623
+ reason?: string;
624
+ /** Types the consumer imports that the producer does not export (reported, not paused). */
625
+ unexported?: WantedEvent[];
626
+ /** The producer had more than one batch waiting. The next pass takes the rest. */
627
+ more?: boolean;
628
+ }
629
+ export interface CrossVerticalReport {
630
+ edges: CrossVerticalEdge[];
631
+ delivered: number;
632
+ withheld: number;
633
+ paused: number;
634
+ unresolved: number;
635
+ /** Scopes whose running code may import, per `candidates`: the only ones any pass calls. */
636
+ candidates: number;
637
+ /** Candidates past this pass's `maxConsumers`, left for the next pass. */
638
+ deferred: number;
639
+ }
525
640
  export interface AccessLogSweepReport {
526
641
  /** Rows handed to the sink and confirmed durable. */
527
642
  shipped: number;
@@ -1 +1 @@
1
- {"version":3,"file":"platform-sweep.d.ts","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,KAAK,EACL,OAAO,EACP,QAAQ,EACR,YAAY,EACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAWhG;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7F;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzG;AAQD,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD,wFAAwF;IACxF,KAAK,EAAE,eAAe,CAAC;IACvB,0DAA0D;IAC1D,KAAK,EAAE,SAAS,CAAC;IACjB,+FAA+F;IAC/F,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,CACxB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,KACb,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjF;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC;IAC7G;;;;;;;;;OASG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,MAAM,MAAM,CAAC;IACrC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;OAQG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,uEAAuE;IACvE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;CAC/D;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,oGAAoG;IACpG,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,CAAC;AAEzD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,4+CAwB9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,sBAAsB,QAYlC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yDAAyD;AACzD,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACnD,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wFAAwF;AACxF,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,mFAAmF;AACnF,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC,GAAG,OAAO,CAEjF;AAED,sGAAsG;AACtG,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAAC,EACtD,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GACzC,MAAM,GAAG,IAAI,CAGf;AAeD,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,WAAW,EAAE,mBAAmB,CAAC;IACjC,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,qBAAqB,EAAE,0BAA0B,CAAC;IAClD;;;;;;;OAOG;IACH,kBAAkB,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACpD;;;;;;OAMG;IACH,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC;;;;;OAKG;IACH,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACtC;;;;OAIG;IACH,SAAS,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACvC,kFAAkF;IAClF,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,oFAAoF;IACpF,MAAM,EAAE;QACN,IAAI,EACA,OAAO,GACP,OAAO,GACP,IAAI,GACJ,MAAM,GACN,aAAa,GACb,SAAS,GACT,kBAAkB,GAClB,qBAAqB,GACrB,UAAU,GACV,WAAW,GACX,YAAY,GAEZ,aAAa,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;CACL;AAED,sEAAsE;AACtE,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,mGAAmG;IACnG,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,sEAAsE;AACtE,MAAM,WAAW,0BAA0B;IACzC,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB;AAsBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAmiB9B;AA8HD,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC,IAAI,IAAI,IAAI,CAAC;CACd;AAED,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,2BAA2B,GACnC,qBAAqB,CAuBvB"}
1
+ {"version":3,"file":"platform-sweep.d.ts","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { drainedEvent, instant } from '@substrat-run/contracts';
2
2
  import { backoffAt } from './scope-host.js';
3
3
  import { MIGRATION_FLAG_THRESHOLD, migrationFleet, migrationProgress, scopeMigrationState } from './migration-progress.js';
4
4
  import { UNDRAINED_SKIPPED_IDS } from './outbox-event.js';
5
+ import { resolveVerticalInstanceFrom } from './peer.js';
5
6
  /** How many access rows one pass ships, and one pass prunes, by default. */
6
7
  const ACCESS_LOG_BATCH = 500;
7
8
  /** How many events one pass drains PER SCOPE by default. */
@@ -147,6 +148,16 @@ function reconcileWindow(behind, batch, rng) {
147
148
  const start = Math.min(ordered.length - 1, Math.max(0, Math.floor(rng() * ordered.length)));
148
149
  return Array.from({ length: batch }, (_, i) => ordered[(start + i) % ordered.length]);
149
150
  }
151
+ /**
152
+ * How many consumer scopes one pass of the cross-vertical phase visits, by default (#1705).
153
+ *
154
+ * Per visited consumer a pass costs one `importState` call, then per source it imports from,
155
+ * one `readExportedEvents` on the producer and, only when something is new, one `deliverToPeer`.
156
+ * Each call is one Durable Object round trip, plus an `/internal` hop when hosted. So a pass
157
+ * is bounded by `maxConsumers × (1 + 2 × sources)` scope calls, and with no candidates it
158
+ * makes none.
159
+ */
160
+ export const CROSS_VERTICAL_CONSUMERS_PER_PASS = 100;
150
161
  const message = (err) => (err instanceof Error ? err.message : String(err));
151
162
  /**
152
163
  * Run `fn` over `items` with at most `limit` in flight. `fn` owns its errors —
@@ -196,6 +207,7 @@ export async function runPlatformSweep(host, options) {
196
207
  schedules: null,
197
208
  accessLog: null,
198
209
  eventDrain: null,
210
+ crossVertical: null,
199
211
  errors: [],
200
212
  };
201
213
  // -- migration reconciliation (kernel-design §5.3, #49) ---------------------
@@ -653,6 +665,14 @@ export async function runPlatformSweep(host, options) {
653
665
  record('failed', { error: message(err), elapsedMs: Date.now() - started });
654
666
  }
655
667
  });
668
+ // -- cross-vertical event delivery (#1705) ------------------------------------
669
+ // After the provision reconcile, so a peer grant a new version declares is seated before
670
+ // the edge that needs it is read. Before the Tier-2 drain, which only ships each scope's
671
+ // own outbox. An import is never re-emitted into the consumer's outbox, so the two phases
672
+ // never ship the same event twice.
673
+ if (options.crossVertical) {
674
+ report.crossVertical = await sweepCrossVertical(host, options, options.crossVertical, failedThisPass, report);
675
+ }
656
676
  // -- drain each scope's domain events to Tier 2 (#1334, master-plan §5.3) ---
657
677
  // Before the access-log drain below, which is deliberately last: this phase
658
678
  // reads the directory (and so writes access rows), and the log drain ships a
@@ -712,6 +732,195 @@ export async function runPlatformSweep(host, options) {
712
732
  }
713
733
  return report;
714
734
  }
735
+ /**
736
+ * One pass over every cross-vertical edge (#1705). Bounded like the event drain: one batch per
737
+ * edge per pass, reported rather than looped, so one busy producer cannot starve the rest.
738
+ */
739
+ async function sweepCrossVertical(host, options, cv, failedThisPass, report) {
740
+ const out = {
741
+ edges: [],
742
+ delivered: 0,
743
+ withheld: 0,
744
+ paused: 0,
745
+ unresolved: 0,
746
+ candidates: 0,
747
+ deferred: 0,
748
+ };
749
+ const reach = cv.reach ?? {
750
+ importState: (t, s) => host.admin.importState(options.actor, t, s),
751
+ readExports: (t, s, input) => host.admin.readExportedEvents(options.actor, t, s, input),
752
+ deliver: (t, s, batch) => host.deliverToPeer(t, s, batch),
753
+ };
754
+ // The default narrowing: this host's own code. A host that predates `registeredImports`
755
+ // imports nothing it could name, and is treated as importing nothing.
756
+ const candidatesOf = reach.candidates?.bind(reach) ??
757
+ ((scopes) => ((host.registeredImports?.() ?? []).length > 0 ? scopes : []));
758
+ // Normalized for the eventDrainBatch reason: a fractional or NaN budget would reach a SQL
759
+ // LIMIT, and every edge would fail every tick as though the fleet were broken.
760
+ const configured = cv.budget ?? EVENT_DRAIN_BATCH;
761
+ const budget = Number.isFinite(configured) && configured >= 1 ? Math.min(Math.floor(configured), 1000) : EVENT_DRAIN_BATCH;
762
+ // Primary scopes only, on both ends (`isPrimaryScope`: no fork, no clean-room preview). A
763
+ // fork is a copy of somebody's data. Delivering into it would feed a copy as though it were
764
+ // the install, and reading from it would publish a copy's history to another vertical. A
765
+ // preview is not the install either.
766
+ const scopes = (await host.admin.listScopes(options.actor, { status: 'active' })).filter((s) => isPrimaryScope(s) && s.vertical !== null);
767
+ const record = (edge) => {
768
+ out.edges.push(edge);
769
+ out.delivered += edge.delivered;
770
+ out.withheld += edge.withheld;
771
+ if (edge.state === 'paused')
772
+ out.paused += 1;
773
+ if (edge.state === 'unresolved')
774
+ out.unresolved += 1;
775
+ if (edge.state === 'failed') {
776
+ report.errors.push({
777
+ kind: 'vertical-events',
778
+ id: `${edge.consumer.scopeId}:${edge.producer.vertical}`,
779
+ error: edge.reason ?? 'failed',
780
+ });
781
+ }
782
+ // Idle writes no row: one green row per edge per tick would bury the ones that matter.
783
+ if (edge.state === 'idle')
784
+ return;
785
+ options.recordSweepRun?.({
786
+ kind: 'vertical-events',
787
+ unit: `${edge.consumer.scopeId}:${edge.producer.vertical}`,
788
+ outcome: edge.state === 'delivered' ? 'ok' : edge.state === 'failed' ? 'failed' : 'skipped',
789
+ tenantId: edge.tenantId,
790
+ scopeId: edge.consumer.scopeId,
791
+ vertical: edge.consumer.vertical,
792
+ operation: `sweep.vertical-events:${edge.producer.vertical}`,
793
+ error: edge.state === 'delivered'
794
+ ? edge.withheld + edge.deadLettered > 0
795
+ ? `${edge.delivered} delivered, ${edge.deadLettered} dead-lettered, ${edge.withheld} withheld by the producer`
796
+ : null
797
+ : (edge.reason ?? null),
798
+ });
799
+ };
800
+ // Narrowed BEFORE any scope is called, then capped. The resolution below still needs every
801
+ // primary scope (a producer is any of them), and that is the one directory read above.
802
+ const candidates = await candidatesOf(scopes);
803
+ out.candidates = candidates.length;
804
+ const configuredCap = cv.maxConsumers ?? CROSS_VERTICAL_CONSUMERS_PER_PASS;
805
+ const cap = Number.isFinite(configuredCap) && configuredCap >= 0 ? Math.floor(configuredCap) : CROSS_VERTICAL_CONSUMERS_PER_PASS;
806
+ const visiting = reconcileWindow(candidates, cap, cv.rng ?? Math.random);
807
+ out.deferred = candidates.length - visiting.length;
808
+ await mapBounded(visiting, options.concurrency ?? 8, async (consumer) => {
809
+ if (failedThisPass.has(consumer.id))
810
+ return;
811
+ let state;
812
+ try {
813
+ state = await reach.importState(consumer.tenantId, consumer.id);
814
+ }
815
+ catch (err) {
816
+ report.errors.push({ kind: 'vertical-events', id: consumer.id, error: message(err) });
817
+ return;
818
+ }
819
+ const bySource = new Map();
820
+ for (const c of state.consumes) {
821
+ const list = bySource.get(c.from) ?? [];
822
+ list.push({ type: c.type, schemaVersion: c.schemaVersion });
823
+ bySource.set(c.from, list);
824
+ }
825
+ // Sequential per consumer: its edges share the consumer's serialization queue anyway,
826
+ // and one consumer with many sources must not hold more than one slot of the pass.
827
+ for (const [from, wants] of [...bySource.entries()].sort(([a], [b]) => a.localeCompare(b))) {
828
+ record(await sweepEdge(reach, scopes, consumer, from, wants, state, budget));
829
+ }
830
+ });
831
+ return out;
832
+ }
833
+ async function sweepEdge(reach, scopes, consumer, from, wants, state, budget) {
834
+ const vertical = consumer.vertical;
835
+ const edge = (rest) => ({
836
+ tenantId: consumer.tenantId,
837
+ consumer: { scopeId: consumer.id, vertical },
838
+ producer: { vertical: from, scopeId: null },
839
+ delivered: 0,
840
+ deadLettered: 0,
841
+ withheld: 0,
842
+ duplicates: 0,
843
+ ...rest,
844
+ });
845
+ if (from === vertical) {
846
+ return edge({ state: 'unresolved', reason: `'${vertical}' imports from itself — an import names ANOTHER vertical` });
847
+ }
848
+ // Both ends must be the tenant's one primary instance of their vertical, by #1706's one rule
849
+ // (`resolveVerticalInstanceFrom`: same tenant, active, primary; two are `ambiguous`, refused
850
+ // rather than guessed). The producer is who is read. The consumer is who the producer's grant
851
+ // names, and a grant naming a slug cannot tell two installs of it apart.
852
+ const self = resolveVerticalInstanceFrom(scopes, consumer.tenantId, vertical);
853
+ if (self.outcome !== 'resolved' || self.instance.scopeId !== consumer.id) {
854
+ return edge({
855
+ state: 'unresolved',
856
+ reason: `this tenant has more than one primary instance of '${vertical}', so the producer cannot tell which one its grant names`,
857
+ });
858
+ }
859
+ const producer = resolveVerticalInstanceFrom(scopes, consumer.tenantId, from);
860
+ if (producer.outcome !== 'resolved') {
861
+ return edge({
862
+ state: 'unresolved',
863
+ reason: producer.outcome === 'not-installed'
864
+ ? `'${from}' is not installed in this tenant`
865
+ : `this tenant has more than one primary instance of '${from}' — delivery waits until one is chosen`,
866
+ });
867
+ }
868
+ const source = { vertical: from, scopeId: producer.instance.scopeId };
869
+ const at = { producer: source };
870
+ const after = state.cursors.find((c) => c.source === source.scopeId)?.cursor ?? null;
871
+ try {
872
+ const batch = await reach.readExports(producer.instance.tenantId, source.scopeId, {
873
+ consumer: vertical,
874
+ after,
875
+ wants,
876
+ limit: budget,
877
+ });
878
+ const unexported = batch.unexported.length ? { unexported: batch.unexported } : {};
879
+ if (batch.paused) {
880
+ return edge({
881
+ ...at,
882
+ ...unexported,
883
+ state: 'paused',
884
+ reason: `paused: producer '${from}' does not grant vertical:${vertical} ${batch.paused.missing.join(', ')} — ` +
885
+ `nothing was read; the backlog waits in its outbox`,
886
+ });
887
+ }
888
+ if (batch.next === null || (batch.events.length === 0 && batch.withheld.length === 0)) {
889
+ return edge({ ...at, ...unexported, state: 'idle' });
890
+ }
891
+ const result = await reach.deliver(consumer.tenantId, consumer.id, {
892
+ source,
893
+ after,
894
+ next: batch.next,
895
+ events: batch.events,
896
+ withheld: batch.withheld,
897
+ });
898
+ if (result.paused) {
899
+ return edge({
900
+ ...at,
901
+ ...unexported,
902
+ state: 'paused',
903
+ reason: `paused: consumer '${vertical}' refused '${from}' — ${result.paused.reason}; the backlog waits in the producer's outbox`,
904
+ });
905
+ }
906
+ if (result.stale) {
907
+ return edge({ ...at, state: 'stale', reason: 'the consumer\'s watermark moved under this pass; the next pass reads from where it is' });
908
+ }
909
+ return edge({
910
+ ...at,
911
+ ...unexported,
912
+ state: 'delivered',
913
+ delivered: result.delivered,
914
+ deadLettered: result.deadLettered,
915
+ withheld: result.withheld,
916
+ duplicates: result.duplicates,
917
+ ...(batch.more ? { more: true } : {}),
918
+ });
919
+ }
920
+ catch (err) {
921
+ return edge({ ...at, state: 'failed', reason: message(err) });
922
+ }
923
+ }
715
924
  /**
716
925
  * One read→ship→stamp cycle over ONE scope's outbox (#1334). Returns how many
717
926
  * events shipped, so the caller can tell a full batch (more waiting) from a
@@ -1 +1 @@
1
- {"version":3,"file":"platform-sweep.js","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-sweep.js","sourceRoot":"","sources":["../src/platform-sweep.ts"],"names":[],"mappings":"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"}