@spine-event-engine/server 2.0.0-snapshot.16 → 2.0.0-snapshot.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -3
- package/REFERENCE.md +66 -12
- package/dist/context/bounded-context.d.ts +72 -14
- package/dist/context/bounded-context.d.ts.map +1 -1
- package/dist/context/bounded-context.js +130 -49
- package/dist/context/bounded-context.js.map +1 -1
- package/dist/context/effective-tenant.d.ts +9 -0
- package/dist/context/effective-tenant.d.ts.map +1 -0
- package/dist/context/effective-tenant.js +58 -0
- package/dist/context/effective-tenant.js.map +1 -0
- package/dist/context/tenant-index.d.ts.map +1 -1
- package/dist/context/tenant-index.js +70 -1
- package/dist/context/tenant-index.js.map +1 -1
- package/dist/delivery/delivery.d.ts.map +1 -1
- package/dist/delivery/delivery.js +270 -26
- package/dist/delivery/delivery.js.map +1 -1
- package/dist/delivery/inbox-storage.d.ts +7 -0
- package/dist/delivery/inbox-storage.d.ts.map +1 -1
- package/dist/delivery/inbox-storage.js +110 -0
- package/dist/delivery/inbox-storage.js.map +1 -1
- package/dist/entity/entity-metadata.d.ts +2 -2
- package/dist/entity/entity-metadata.js +2 -2
- package/dist/entity/entity-metadata.js.map +1 -1
- package/dist/entity/entity-storage-descriptor.d.ts +24 -4
- package/dist/entity/entity-storage-descriptor.d.ts.map +1 -1
- package/dist/entity/entity-storage-descriptor.js +69 -23
- package/dist/entity/entity-storage-descriptor.js.map +1 -1
- package/dist/entity/entity.d.ts +19 -18
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +61 -24
- package/dist/entity/entity.js.map +1 -1
- package/dist/entity/spec-scanner.d.ts +13 -1
- package/dist/entity/spec-scanner.d.ts.map +1 -1
- package/dist/entity/spec-scanner.js +20 -3
- package/dist/entity/spec-scanner.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/repository/command-routing.d.ts +63 -10
- package/dist/repository/command-routing.d.ts.map +1 -1
- package/dist/repository/command-routing.js +41 -8
- package/dist/repository/command-routing.js.map +1 -1
- package/dist/repository/event-routing.d.ts +64 -9
- package/dist/repository/event-routing.d.ts.map +1 -1
- package/dist/repository/event-routing.js +42 -7
- package/dist/repository/event-routing.js.map +1 -1
- package/dist/repository/repository.d.ts +96 -10
- package/dist/repository/repository.d.ts.map +1 -1
- package/dist/repository/repository.js +437 -133
- package/dist/repository/repository.js.map +1 -1
- package/dist/repository/state-update-routing.d.ts +67 -8
- package/dist/repository/state-update-routing.d.ts.map +1 -1
- package/dist/repository/state-update-routing.js +45 -6
- package/dist/repository/state-update-routing.js.map +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +407 -109
- package/dist/server/server.js.map +1 -1
- package/dist/services/registered-targets.d.ts +73 -0
- package/dist/services/registered-targets.d.ts.map +1 -0
- package/dist/services/registered-targets.js +127 -0
- package/dist/services/registered-targets.js.map +1 -0
- package/dist/services/spine-services.d.ts +26 -12
- package/dist/services/spine-services.d.ts.map +1 -1
- package/dist/services/spine-services.js +1044 -962
- package/dist/services/spine-services.js.map +1 -1
- package/dist/stand/stand.d.ts +73 -1
- package/dist/stand/stand.d.ts.map +1 -1
- package/dist/stand/stand.js +220 -48
- package/dist/stand/stand.js.map +1 -1
- package/dist/stand/subscription-observer.d.ts.map +1 -1
- package/dist/stand/subscription-observer.js +4 -11
- package/dist/stand/subscription-observer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -12
|
@@ -18,7 +18,7 @@ import { TenantIdSchema } from "@spine-event-engine/proto";
|
|
|
18
18
|
import { WorkerIdSchema } from "@spine-event-engine/proto/delivery";
|
|
19
19
|
import { AlreadyPickedUp, DeliveryMonitor, FailedPickUp, FailedReception, } from "./delivery-monitor.js";
|
|
20
20
|
import { Inbox, InboxTargets } from "./inbox.js";
|
|
21
|
-
import { InboxStorage } from "./inbox-storage.js";
|
|
21
|
+
import { InboxStorage, InboxStorageClock } from "./inbox-storage.js";
|
|
22
22
|
import { ShardIndex } from "./shard-index.js";
|
|
23
23
|
import { ShardedWorkRegistry } from "./sharded-work-registry.js";
|
|
24
24
|
import { withDeliveryCommitFence } from "../repository/commit-fence.js";
|
|
@@ -208,20 +208,34 @@ export class Delivery {
|
|
|
208
208
|
}).run();
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* Processes inbox pages while retaining one shard session.
|
|
213
|
+
*/
|
|
211
214
|
class DeliveryDrain {
|
|
212
215
|
input;
|
|
213
216
|
#statistics = counts();
|
|
214
217
|
#failures = [];
|
|
215
218
|
#deduplication;
|
|
216
219
|
#blockedTargets = new Set();
|
|
220
|
+
#removedInPage = new Set();
|
|
217
221
|
#current;
|
|
218
222
|
#ownershipLost = false;
|
|
219
223
|
#failureLimitReached = false;
|
|
224
|
+
/**
|
|
225
|
+
* Creates a drain for one acquired shard session.
|
|
226
|
+
*
|
|
227
|
+
* @param input Supplies the inbox, callbacks, and shard session.
|
|
228
|
+
*/
|
|
220
229
|
constructor(input) {
|
|
221
230
|
this.input = input;
|
|
222
231
|
this.#current = input.session;
|
|
223
232
|
this.#deduplication = new DeliveryDeduplication(input.inbox);
|
|
224
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Executes delivery and releases the shard session.
|
|
236
|
+
*
|
|
237
|
+
* @returns The terminal delivery outcome and counts.
|
|
238
|
+
*/
|
|
225
239
|
async run() {
|
|
226
240
|
let run;
|
|
227
241
|
try {
|
|
@@ -234,34 +248,69 @@ class DeliveryDrain {
|
|
|
234
248
|
}
|
|
235
249
|
return (await this.#release()) ? run : this.#complete("FAILED");
|
|
236
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* Removes the session and reports completion when release succeeds.
|
|
253
|
+
*
|
|
254
|
+
* @returns Whether the session was released.
|
|
255
|
+
*/
|
|
237
256
|
async #release() {
|
|
238
257
|
const released = await safelyValue(() => this.input.shards.release(this.#current, this.input.options.operation), false);
|
|
239
258
|
if (released)
|
|
240
259
|
await safely(() => this.#completeMonitoring());
|
|
241
260
|
return released;
|
|
242
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Checks whether monitoring permits this drain to start.
|
|
264
|
+
*
|
|
265
|
+
* @returns Whether page processing may start.
|
|
266
|
+
*/
|
|
243
267
|
async #canStart() {
|
|
244
268
|
if (!(await safelyBoolean(() => this.input.monitor.shouldContinueAfter("DELIVERY"))))
|
|
245
269
|
return false;
|
|
246
270
|
return safely(() => this.input.monitor.onDeliveryStarted(this.input.shard));
|
|
247
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Reads and processes inbox pages until the shard is drained or stopped.
|
|
274
|
+
*
|
|
275
|
+
* @returns The terminal delivery outcome.
|
|
276
|
+
*/
|
|
248
277
|
async #readPages() {
|
|
249
278
|
let after;
|
|
279
|
+
let deliveredInScan = false;
|
|
250
280
|
for (;;) {
|
|
251
281
|
const messages = await this.#readPage(after);
|
|
252
|
-
|
|
253
|
-
|
|
282
|
+
this.#removedInPage.clear();
|
|
283
|
+
if (messages.length === 0) {
|
|
284
|
+
if (!deliveredInScan)
|
|
285
|
+
return this.#complete("DRAINED");
|
|
286
|
+
after = undefined;
|
|
287
|
+
deliveredInScan = false;
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
254
290
|
const deliveredBefore = this.#statistics.delivered;
|
|
255
291
|
if (!(await this.#processPage(messages)))
|
|
256
292
|
return this.#complete("STOPPED");
|
|
257
293
|
if (!(await this.#cleanupPage(messages)))
|
|
258
294
|
return this.#complete("STOPPED");
|
|
259
|
-
|
|
260
|
-
if (
|
|
261
|
-
|
|
262
|
-
|
|
295
|
+
deliveredInScan ||= this.#statistics.delivered !== deliveredBefore;
|
|
296
|
+
if (messages.length < this.input.pageSize) {
|
|
297
|
+
if (!deliveredInScan)
|
|
298
|
+
return this.#complete("DRAINED");
|
|
299
|
+
after = undefined;
|
|
300
|
+
deliveredInScan = false;
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
const survivor = messages.findLast((message) => !this.#removedInPage.has(message));
|
|
304
|
+
if (survivor !== undefined)
|
|
305
|
+
after = this.#continuation([survivor]);
|
|
263
306
|
}
|
|
264
307
|
}
|
|
308
|
+
/**
|
|
309
|
+
* Reads the next inbox page after an optional continuation.
|
|
310
|
+
*
|
|
311
|
+
* @param after Supplies the prior page position, when present.
|
|
312
|
+
* @returns The ordered inbox messages in the next page.
|
|
313
|
+
*/
|
|
265
314
|
#readPage(after) {
|
|
266
315
|
return this.input.inbox.read(this.input.shard, {
|
|
267
316
|
limit: this.input.pageSize,
|
|
@@ -269,8 +318,14 @@ class DeliveryDrain {
|
|
|
269
318
|
...(this.input.options.operation ?? {}),
|
|
270
319
|
});
|
|
271
320
|
}
|
|
321
|
+
/**
|
|
322
|
+
* Processes every message in one page.
|
|
323
|
+
*
|
|
324
|
+
* @param messages Supplies the inbox page to process.
|
|
325
|
+
* @returns Whether page processing may continue.
|
|
326
|
+
*/
|
|
272
327
|
async #processPage(messages) {
|
|
273
|
-
const page = this.#deduplication.page(messages);
|
|
328
|
+
const page = this.#deduplication.page(messages, this.#retentionTime());
|
|
274
329
|
for (const message of messages) {
|
|
275
330
|
if (!(await this.#processMessage(message, page)))
|
|
276
331
|
return false;
|
|
@@ -279,6 +334,13 @@ class DeliveryDrain {
|
|
|
279
334
|
}
|
|
280
335
|
return true;
|
|
281
336
|
}
|
|
337
|
+
/**
|
|
338
|
+
* Processes one message unless it is skipped or its target is blocked.
|
|
339
|
+
*
|
|
340
|
+
* @param message Supplies the inbox message.
|
|
341
|
+
* @param page Provides duplicate checks for this page.
|
|
342
|
+
* @returns Whether processing may continue.
|
|
343
|
+
*/
|
|
282
344
|
async #processMessage(message, page) {
|
|
283
345
|
if (this.input.options.operation?.signal?.aborted)
|
|
284
346
|
return false;
|
|
@@ -294,22 +356,47 @@ class DeliveryDrain {
|
|
|
294
356
|
return this.#removeDuplicate(message, target);
|
|
295
357
|
return this.#deliver(message, target);
|
|
296
358
|
}
|
|
359
|
+
/**
|
|
360
|
+
* Determines whether an inbox message is ineligible for endpoint delivery.
|
|
361
|
+
*
|
|
362
|
+
* @param message Supplies the message to check.
|
|
363
|
+
* @returns Whether the message should be skipped.
|
|
364
|
+
*/
|
|
297
365
|
#shouldSkip(message) {
|
|
298
366
|
return (message.status !== "TO_DELIVER" ||
|
|
299
367
|
!isEndpointMessage(message) ||
|
|
300
368
|
(this.input.options.acceptMessage !== undefined && !this.input.options.acceptMessage(message)));
|
|
301
369
|
}
|
|
370
|
+
/**
|
|
371
|
+
* Builds the key used to block further messages for one target.
|
|
372
|
+
*
|
|
373
|
+
* @param message Supplies the inbox message.
|
|
374
|
+
* @returns The target type and ID key.
|
|
375
|
+
*/
|
|
302
376
|
#targetKey(message) {
|
|
303
377
|
return `${message.inboxId.targetTypeUrl}:${InboxTargets.key(message.inboxId.targetId)}`;
|
|
304
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* Checks monitoring and verifies that the shard session remains current.
|
|
381
|
+
*
|
|
382
|
+
* @returns Whether this message may be processed.
|
|
383
|
+
*/
|
|
305
384
|
async #mayProcess() {
|
|
306
385
|
return ((await safelyBoolean(() => this.input.monitor.shouldContinueAfter("PAGE"))) &&
|
|
307
386
|
(await this.#validate()));
|
|
308
387
|
}
|
|
388
|
+
/**
|
|
389
|
+
* Removes a duplicate message and records a failure if removal fails.
|
|
390
|
+
*
|
|
391
|
+
* @param message Supplies the duplicate message.
|
|
392
|
+
* @param target Identifies the target to block after a failure.
|
|
393
|
+
* @returns Whether processing may continue.
|
|
394
|
+
*/
|
|
309
395
|
async #removeDuplicate(message, target) {
|
|
310
396
|
try {
|
|
311
397
|
if (!(await this.input.inbox.removeDuplicate(message, this.#current, this.input.options.operation)))
|
|
312
398
|
throw new Error("Inbox duplicate was not removed.");
|
|
399
|
+
this.#removedInPage.add(message);
|
|
313
400
|
this.input.options.onDuplicateRemoved?.(message);
|
|
314
401
|
}
|
|
315
402
|
catch (error) {
|
|
@@ -318,6 +405,13 @@ class DeliveryDrain {
|
|
|
318
405
|
}
|
|
319
406
|
return true;
|
|
320
407
|
}
|
|
408
|
+
/**
|
|
409
|
+
* Delivers one message and records its outcome.
|
|
410
|
+
*
|
|
411
|
+
* @param message Supplies the inbox message.
|
|
412
|
+
* @param target Identifies the message target.
|
|
413
|
+
* @returns Whether processing may continue.
|
|
414
|
+
*/
|
|
321
415
|
async #deliver(message, target) {
|
|
322
416
|
try {
|
|
323
417
|
this.#statistics.accepted += 1;
|
|
@@ -333,6 +427,14 @@ class DeliveryDrain {
|
|
|
333
427
|
}
|
|
334
428
|
return true;
|
|
335
429
|
}
|
|
430
|
+
/**
|
|
431
|
+
* Records endpoint failure and runs the configured recovery action.
|
|
432
|
+
*
|
|
433
|
+
* @param message Supplies the failed inbox message.
|
|
434
|
+
* @param target Identifies the message target.
|
|
435
|
+
* @param error Supplies the endpoint or acknowledgement failure.
|
|
436
|
+
* @returns Completion after the recovery action finishes.
|
|
437
|
+
*/
|
|
336
438
|
async #handleReceptionFailure(message, target, error) {
|
|
337
439
|
this.#recordFailure(message, error);
|
|
338
440
|
const reception = new FailedReception(message, error, () => this.#acknowledge(message), () => this.#repeat(message));
|
|
@@ -341,21 +443,45 @@ class DeliveryDrain {
|
|
|
341
443
|
!(await safely(() => reception.markDelivered().execute())))
|
|
342
444
|
this.#blockedTargets.add(target);
|
|
343
445
|
}
|
|
446
|
+
/**
|
|
447
|
+
* Marks a message delivered after checking the shard session.
|
|
448
|
+
*
|
|
449
|
+
* @param message Supplies the inbox message to acknowledge.
|
|
450
|
+
* @returns Completion after the message is marked delivered.
|
|
451
|
+
*/
|
|
344
452
|
async #acknowledge(message) {
|
|
345
453
|
if (!(await this.#validate()))
|
|
346
454
|
throw new Error("Shard ownership was lost.");
|
|
347
455
|
await this.#markDelivered(message);
|
|
348
456
|
}
|
|
457
|
+
/**
|
|
458
|
+
* Dispatches the message again and acknowledges it.
|
|
459
|
+
*
|
|
460
|
+
* @param message Supplies the inbox message to repeat.
|
|
461
|
+
* @returns Completion after dispatch and acknowledgement.
|
|
462
|
+
*/
|
|
349
463
|
async #repeat(message) {
|
|
350
464
|
await this.#dispatch(message);
|
|
351
465
|
await this.#acknowledge(message);
|
|
352
466
|
}
|
|
467
|
+
/**
|
|
468
|
+
* Dispatches a message while validating the shard session before the call.
|
|
469
|
+
*
|
|
470
|
+
* @param message Supplies the inbox message for the endpoint.
|
|
471
|
+
* @returns Completion after endpoint dispatch.
|
|
472
|
+
*/
|
|
353
473
|
async #dispatch(message) {
|
|
354
474
|
await withDeliveryCommitFence(async () => {
|
|
355
475
|
if (!(await this.#validate()))
|
|
356
476
|
throw new Error("Shard ownership was lost.");
|
|
357
477
|
}, () => Promise.resolve(this.input.options.onMessage(message)));
|
|
358
478
|
}
|
|
479
|
+
/**
|
|
480
|
+
* Marks a message delivered and updates local counts and callbacks.
|
|
481
|
+
*
|
|
482
|
+
* @param message Supplies the inbox message to acknowledge.
|
|
483
|
+
* @returns Completion after durable acknowledgement.
|
|
484
|
+
*/
|
|
359
485
|
async #markDelivered(message) {
|
|
360
486
|
if ((await this.input.inbox.markDelivered(message, this.input.options.operation)) === undefined)
|
|
361
487
|
throw new Error("Inbox message was not marked delivered.");
|
|
@@ -363,36 +489,73 @@ class DeliveryDrain {
|
|
|
363
489
|
this.#statistics.delivered += 1;
|
|
364
490
|
this.input.options.onDelivered?.(message);
|
|
365
491
|
}
|
|
492
|
+
/**
|
|
493
|
+
* Removes expired delivered messages from one page when supported.
|
|
494
|
+
*
|
|
495
|
+
* @param messages Supplies the inbox page to clean up.
|
|
496
|
+
* @returns Whether cleanup completed while the session remained valid.
|
|
497
|
+
*/
|
|
366
498
|
async #cleanupPage(messages) {
|
|
367
499
|
if (this.input.inbox.removeDelivered === undefined)
|
|
368
500
|
return true;
|
|
369
501
|
if (!(await this.#validate()))
|
|
370
502
|
return false;
|
|
503
|
+
const now = this.#retentionTime().getTime();
|
|
371
504
|
for (const message of messages) {
|
|
372
|
-
if (message.status === "DELIVERED" &&
|
|
373
|
-
|
|
505
|
+
if (message.status === "DELIVERED" &&
|
|
506
|
+
(message.keepUntil === undefined || message.keepUntil.getTime() <= now)) {
|
|
507
|
+
const removed = await this.#removeDelivered(message);
|
|
508
|
+
if (removed === undefined)
|
|
509
|
+
return false;
|
|
510
|
+
if (removed)
|
|
511
|
+
this.#removedInPage.add(message);
|
|
512
|
+
}
|
|
374
513
|
}
|
|
375
514
|
return true;
|
|
376
515
|
}
|
|
516
|
+
/**
|
|
517
|
+
* Removes one expired delivered message when supported.
|
|
518
|
+
*
|
|
519
|
+
* @param message Supplies the delivered message to remove.
|
|
520
|
+
* @returns Whether the row was removed, or undefined if the session was lost.
|
|
521
|
+
*/
|
|
377
522
|
async #removeDelivered(message) {
|
|
378
523
|
if (this.input.inbox.removeDelivered === undefined)
|
|
379
|
-
return true;
|
|
380
|
-
if (this.input.options.operation?.signal?.aborted || !(await this.#validate()))
|
|
381
524
|
return false;
|
|
525
|
+
if (this.input.options.operation?.signal?.aborted || !(await this.#validate()))
|
|
526
|
+
return undefined;
|
|
382
527
|
const removed = await this.input.inbox.removeDelivered(message, this.#current, this.input.options.operation);
|
|
383
|
-
|
|
528
|
+
if (this.input.options.operation?.signal?.aborted || (!removed && !(await this.#validate())))
|
|
529
|
+
return undefined;
|
|
530
|
+
return removed;
|
|
384
531
|
}
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
532
|
+
/**
|
|
533
|
+
* Creates the continuation following the last message in a page.
|
|
534
|
+
*
|
|
535
|
+
* @param messages Supplies the non-empty inbox page.
|
|
536
|
+
* @returns The continuation identifying its last message.
|
|
537
|
+
*/
|
|
538
|
+
#continuation(messages) {
|
|
388
539
|
const last = messages.at(-1);
|
|
389
|
-
if (last === undefined
|
|
390
|
-
|
|
391
|
-
return {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
540
|
+
if (last === undefined)
|
|
541
|
+
throw new Error("Inbox page has no continuation.");
|
|
542
|
+
return { messageId: last.id.value, whenReceived: last.whenReceived, version: last.version };
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Reads the inbox retention clock or the current time.
|
|
546
|
+
*
|
|
547
|
+
* @returns The time used to evaluate message retention.
|
|
548
|
+
*/
|
|
549
|
+
#retentionTime() {
|
|
550
|
+
return this.input.inbox instanceof Inbox
|
|
551
|
+
? InboxStorageClock.read(this.input.inbox.storage)
|
|
552
|
+
: new Date();
|
|
395
553
|
}
|
|
554
|
+
/**
|
|
555
|
+
* Checks the shard session and records when it is lost.
|
|
556
|
+
*
|
|
557
|
+
* @returns Whether the shard session remains valid.
|
|
558
|
+
*/
|
|
396
559
|
async #validate() {
|
|
397
560
|
const current = await safelyValue(() => this.input.shards.validateOwnership(this.#current, this.input.options.operation), undefined);
|
|
398
561
|
if (current === undefined)
|
|
@@ -401,15 +564,32 @@ class DeliveryDrain {
|
|
|
401
564
|
this.#current = current;
|
|
402
565
|
return current !== undefined;
|
|
403
566
|
}
|
|
567
|
+
/**
|
|
568
|
+
* Records an ephemeral delivery failure up to the configured limit.
|
|
569
|
+
*
|
|
570
|
+
* @param message Supplies the failed inbox message.
|
|
571
|
+
* @param error Supplies the observed failure.
|
|
572
|
+
*/
|
|
404
573
|
#recordFailure(message, error) {
|
|
405
574
|
this.#statistics.failed += 1;
|
|
406
575
|
if (this.#failures.length < deliveryFailureLimit)
|
|
407
576
|
this.#failures.push(Object.freeze({ message: snapshot(message), error }));
|
|
408
577
|
this.#failureLimitReached = this.#failures.length === deliveryFailureLimit;
|
|
409
578
|
}
|
|
579
|
+
/**
|
|
580
|
+
* Creates a terminal result from the current counters and failures.
|
|
581
|
+
*
|
|
582
|
+
* @param status Identifies the terminal delivery outcome.
|
|
583
|
+
* @returns The immutable delivery result.
|
|
584
|
+
*/
|
|
410
585
|
#complete(status) {
|
|
411
586
|
return result(status, this.#statistics, this.#failures);
|
|
412
587
|
}
|
|
588
|
+
/**
|
|
589
|
+
* Sends delivery completion to the monitor.
|
|
590
|
+
*
|
|
591
|
+
* @returns Completion after the monitor callback settles.
|
|
592
|
+
*/
|
|
413
593
|
#completeMonitoring() {
|
|
414
594
|
return Promise.resolve(this.input.monitor.onDeliveryCompleted(Object.freeze({
|
|
415
595
|
processed: this.#statistics.processed,
|
|
@@ -465,6 +645,14 @@ async function safelyBoolean(action) {
|
|
|
465
645
|
return false;
|
|
466
646
|
}
|
|
467
647
|
}
|
|
648
|
+
/**
|
|
649
|
+
* Returns an action result or a fallback when the action fails.
|
|
650
|
+
*
|
|
651
|
+
* @typeParam T Action result type.
|
|
652
|
+
* @param action Supplies the action to run.
|
|
653
|
+
* @param fallback Supplies the result to use after failure.
|
|
654
|
+
* @returns The action result or fallback value.
|
|
655
|
+
*/
|
|
468
656
|
async function safelyValue(action, fallback) {
|
|
469
657
|
try {
|
|
470
658
|
return await action();
|
|
@@ -478,32 +666,68 @@ function isEndpointMessage(message) {
|
|
|
478
666
|
message.label === "UPDATE_SUBSCRIBER" ||
|
|
479
667
|
message.label === "REACT_UPON_EVENT");
|
|
480
668
|
}
|
|
669
|
+
/**
|
|
670
|
+
* Tracks recently delivered messages for one inbox.
|
|
671
|
+
*/
|
|
481
672
|
class DeliveryDeduplication {
|
|
482
673
|
#recent;
|
|
674
|
+
/**
|
|
675
|
+
* Creates or reuses recent delivery state for the supplied inbox.
|
|
676
|
+
*
|
|
677
|
+
* @param inbox Supplies the inbox used as the deduplication key.
|
|
678
|
+
*/
|
|
483
679
|
constructor(inbox) {
|
|
484
680
|
const current = recentDeliveries.get(inbox);
|
|
485
681
|
this.#recent = current ?? new RecentDeliveries();
|
|
486
682
|
if (current === undefined)
|
|
487
683
|
recentDeliveries.set(inbox, this.#recent);
|
|
488
684
|
}
|
|
489
|
-
|
|
490
|
-
|
|
685
|
+
/**
|
|
686
|
+
* Creates duplicate checks for one page and retention time.
|
|
687
|
+
*
|
|
688
|
+
* @param messages Supplies the messages in the page.
|
|
689
|
+
* @param now Supplies the time used to check message retention.
|
|
690
|
+
* @returns Duplicate checks for the page.
|
|
691
|
+
*/
|
|
692
|
+
page(messages, now) {
|
|
693
|
+
return new DeliveryPageDeduplication(messages, this.#recent, now);
|
|
491
694
|
}
|
|
695
|
+
/**
|
|
696
|
+
* Records a message as recently delivered.
|
|
697
|
+
*
|
|
698
|
+
* @param message Supplies the delivered message.
|
|
699
|
+
*/
|
|
492
700
|
recordDelivered(message) {
|
|
493
701
|
this.#recent.add(message);
|
|
494
702
|
}
|
|
495
703
|
}
|
|
704
|
+
/**
|
|
705
|
+
* Checks duplicates within a page and the recent-delivery cache.
|
|
706
|
+
*/
|
|
496
707
|
class DeliveryPageDeduplication {
|
|
497
708
|
recent;
|
|
498
709
|
#identities;
|
|
499
|
-
|
|
710
|
+
/**
|
|
711
|
+
* Creates duplicate checks from retained messages in one page.
|
|
712
|
+
*
|
|
713
|
+
* @param messages Supplies the inbox page.
|
|
714
|
+
* @param recent Provides recently delivered message identities.
|
|
715
|
+
* @param now Supplies the time used to check message retention.
|
|
716
|
+
*/
|
|
717
|
+
constructor(messages, recent, now) {
|
|
500
718
|
this.recent = recent;
|
|
501
719
|
this.#identities = new Set(messages
|
|
502
720
|
.filter((message) => message.status === "DELIVERED" &&
|
|
503
721
|
message.keepUntil !== undefined &&
|
|
504
|
-
message.keepUntil.getTime() >
|
|
722
|
+
message.keepUntil.getTime() > now.getTime())
|
|
505
723
|
.map((message) => RecentDeliveries.key(message)));
|
|
506
724
|
}
|
|
725
|
+
/**
|
|
726
|
+
* Checks whether a message appeared earlier in the page or cache.
|
|
727
|
+
*
|
|
728
|
+
* @param message Supplies the message to check.
|
|
729
|
+
* @returns Whether this message is a duplicate.
|
|
730
|
+
*/
|
|
507
731
|
isDuplicate(message) {
|
|
508
732
|
const identity = RecentDeliveries.key(message);
|
|
509
733
|
if (this.#identities.has(identity) || this.recent.has(identity))
|
|
@@ -512,11 +736,25 @@ class DeliveryPageDeduplication {
|
|
|
512
736
|
return false;
|
|
513
737
|
}
|
|
514
738
|
}
|
|
739
|
+
/**
|
|
740
|
+
* Stores a bounded set of recently delivered message identities.
|
|
741
|
+
*/
|
|
515
742
|
class RecentDeliveries {
|
|
516
743
|
#identities = new Map();
|
|
744
|
+
/**
|
|
745
|
+
* Checks whether an identity is in the recent-delivery set.
|
|
746
|
+
*
|
|
747
|
+
* @param identity Supplies the encoded message identity.
|
|
748
|
+
* @returns Whether that identity is present.
|
|
749
|
+
*/
|
|
517
750
|
has(identity) {
|
|
518
751
|
return this.#identities.has(identity);
|
|
519
752
|
}
|
|
753
|
+
/**
|
|
754
|
+
* Adds a message identity and removes the oldest entry when over capacity.
|
|
755
|
+
*
|
|
756
|
+
* @param message Supplies the delivered message.
|
|
757
|
+
*/
|
|
520
758
|
add(message) {
|
|
521
759
|
const identity = RecentDeliveries.key(message);
|
|
522
760
|
this.#identities.delete(identity);
|
|
@@ -527,6 +765,12 @@ class RecentDeliveries {
|
|
|
527
765
|
this.#identities.delete(oldest);
|
|
528
766
|
}
|
|
529
767
|
}
|
|
768
|
+
/**
|
|
769
|
+
* Creates the identity key used for recent-delivery checks.
|
|
770
|
+
*
|
|
771
|
+
* @param message Supplies the message to identify.
|
|
772
|
+
* @returns The serialized message identity.
|
|
773
|
+
*/
|
|
530
774
|
static key(message) {
|
|
531
775
|
return JSON.stringify([
|
|
532
776
|
message.signalId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/delivery/delivery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../src/delivery/delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,13 @@ import type { StorageContext, StorageFactory } from "@spine-event-engine/storage
|
|
|
2
2
|
import { type InboxMessage, type InboxMessageId, type InboxReadOptions, type InboxWriteResult } from "./inbox.js";
|
|
3
3
|
import { ShardIndex } from "./shard-index.js";
|
|
4
4
|
import type { DeliveryWorkSession } from "./delivery-ports.js";
|
|
5
|
+
/**
|
|
6
|
+
* Internal clock access for concrete local inbox delivery.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare const InboxStorageClock: Readonly<{
|
|
10
|
+
read(storage: InboxStorage): Date;
|
|
11
|
+
}>;
|
|
5
12
|
/**
|
|
6
13
|
* Stores direct generated inbox records in the configured durable family.
|
|
7
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox-storage.d.ts","sourceRoot":"","sources":["../../src/delivery/inbox-storage.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAiB,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGjG,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"inbox-storage.d.ts","sourceRoot":"","sources":["../../src/delivery/inbox-storage.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAiB,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAGjG,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM/D;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC;IAAE,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CAU5E,CAAC;AAEH;;GAEG;AACH,qBAAa,YAAY;;IAOvB;;;;OAIG;gBACS,OAAO,EAAE,mBAAmB;IAQxC;;;;;;OAMG;IACG,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;IA0B/F;;;;;OAKG;IACG,WAAW,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAWxE;;;;;OAKG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmB7D;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IA2B7E;;;;;;;OAOG;IACG,eAAe,CACnB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,OAAO,qBAAqB,EAAE,wBAAwB,GAC/D,OAAO,CAAC,OAAO,CAAC;IASnB;;;;;;;OAOG;IACG,eAAe,CACnB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,OAAO,qBAAqB,EAAE,wBAAwB,GAC/D,OAAO,CAAC,OAAO,CAAC;CAsEpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAGlC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B"}
|