@kronos-ts/messaging 0.3.0 → 0.4.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 (58) hide show
  1. package/dist/dead-letter-listener.d.ts +36 -0
  2. package/dist/dead-letter-listener.d.ts.map +1 -0
  3. package/dist/dead-letter-listener.js +69 -0
  4. package/dist/dead-letter-listener.js.map +1 -0
  5. package/dist/dead-letter-queue.d.ts +5 -7
  6. package/dist/dead-letter-queue.d.ts.map +1 -1
  7. package/dist/dead-letter-queue.js +3 -13
  8. package/dist/dead-letter-queue.js.map +1 -1
  9. package/dist/dead-letter-reprocessor.d.ts +44 -0
  10. package/dist/dead-letter-reprocessor.d.ts.map +1 -0
  11. package/dist/dead-letter-reprocessor.js +48 -0
  12. package/dist/dead-letter-reprocessor.js.map +1 -0
  13. package/dist/dead-lettering-handler.d.ts +7 -4
  14. package/dist/dead-lettering-handler.d.ts.map +1 -1
  15. package/dist/dead-lettering-handler.js +36 -15
  16. package/dist/dead-lettering-handler.js.map +1 -1
  17. package/dist/enqueue-policy.d.ts +79 -0
  18. package/dist/enqueue-policy.d.ts.map +1 -0
  19. package/dist/enqueue-policy.js +95 -0
  20. package/dist/enqueue-policy.js.map +1 -0
  21. package/dist/event-processor-builder.d.ts +42 -3
  22. package/dist/event-processor-builder.d.ts.map +1 -1
  23. package/dist/event-processor-builder.js +49 -2
  24. package/dist/event-processor-builder.js.map +1 -1
  25. package/dist/index.d.ts +5 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +9 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/processor-configuration.d.ts +1 -1
  30. package/dist/processor-configuration.d.ts.map +1 -1
  31. package/dist/sequencing-policy.d.ts +41 -0
  32. package/dist/sequencing-policy.d.ts.map +1 -0
  33. package/dist/sequencing-policy.js +39 -0
  34. package/dist/sequencing-policy.js.map +1 -0
  35. package/dist/streaming-event-processor.d.ts +26 -0
  36. package/dist/streaming-event-processor.d.ts.map +1 -1
  37. package/dist/streaming-event-processor.js +96 -2
  38. package/dist/streaming-event-processor.js.map +1 -1
  39. package/dist/subscribing-event-processor.d.ts +6 -0
  40. package/dist/subscribing-event-processor.d.ts.map +1 -1
  41. package/dist/subscribing-event-processor.js.map +1 -1
  42. package/dist/tracking-event-processor.d.ts +27 -0
  43. package/dist/tracking-event-processor.d.ts.map +1 -1
  44. package/dist/tracking-event-processor.js +89 -1
  45. package/dist/tracking-event-processor.js.map +1 -1
  46. package/package.json +3 -3
  47. package/src/dead-letter-listener.ts +97 -0
  48. package/src/dead-letter-queue.ts +8 -17
  49. package/src/dead-letter-reprocessor.ts +95 -0
  50. package/src/dead-lettering-handler.ts +50 -26
  51. package/src/enqueue-policy.ts +118 -0
  52. package/src/event-processor-builder.ts +67 -3
  53. package/src/index.ts +33 -1
  54. package/src/processor-configuration.ts +1 -1
  55. package/src/sequencing-policy.ts +55 -0
  56. package/src/streaming-event-processor.ts +140 -8
  57. package/src/subscribing-event-processor.ts +6 -0
  58. package/src/tracking-event-processor.ts +128 -1
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Diagnostics key under which retry policies track how many times a letter has
3
+ * been processed (initial failure counts as attempt 1).
4
+ */
5
+ export const ATTEMPTS_DIAGNOSTIC = "attempts";
6
+ /**
7
+ * Factory for the standard {@link EnqueueDecision}s, mirroring Axon's
8
+ * `Decisions`. The two lifecycle moments share one decision type:
9
+ *
10
+ * - On an **initial** handler failure, `shouldEnqueue === true` means "park the
11
+ * event" and `false` means "drop it" (the error is swallowed, the token
12
+ * advances anyway).
13
+ * - During **reprocessing**, `shouldEnqueue === true` means "requeue (keep it,
14
+ * still failing)" and `false` means "evict (done — succeeded or gave up)".
15
+ *
16
+ * Hence the deliberate aliases: `evict` ≡ `doNotEnqueue`, `requeue` ≡ `enqueue`.
17
+ * They exist purely to read correctly at each call site.
18
+ */
19
+ export const Decisions = {
20
+ /** Park / keep the letter, recording the given cause and diagnostics. */
21
+ enqueue(cause, diagnostics) {
22
+ return { shouldEnqueue: true, cause, diagnostics };
23
+ },
24
+ /** Alias of {@link enqueue}, read at reprocessing time ("still failing, keep it"). */
25
+ requeue(cause, diagnostics) {
26
+ return { shouldEnqueue: true, cause, diagnostics };
27
+ },
28
+ /** Drop the letter without parking it (initial failure path). */
29
+ doNotEnqueue() {
30
+ return { shouldEnqueue: false };
31
+ },
32
+ /** Alias of {@link doNotEnqueue}, read at reprocessing time ("done — remove it"). */
33
+ evict() {
34
+ return { shouldEnqueue: false };
35
+ },
36
+ /**
37
+ * Keep the letter in place without recording a new cause — used when a
38
+ * reprocess attempt should neither evict nor overwrite the existing failure.
39
+ */
40
+ ignore() {
41
+ return { shouldEnqueue: true };
42
+ },
43
+ };
44
+ /**
45
+ * Default policy: always park a failed event, preserving the original cause.
46
+ * Matches Axon's default `(letter, cause) -> Decisions.enqueue(cause)`.
47
+ *
48
+ * With no retry cap, letters stay until reprocessed successfully or evicted by
49
+ * an operator — appropriate when every failure deserves manual inspection.
50
+ */
51
+ export function alwaysEnqueuePolicy() {
52
+ return {
53
+ decide(_letter, cause) {
54
+ return Decisions.enqueue(cause);
55
+ },
56
+ };
57
+ }
58
+ function attemptsOf(letter) {
59
+ const raw = letter.diagnostics[ATTEMPTS_DIAGNOSTIC];
60
+ return typeof raw === "number" ? raw : 0;
61
+ }
62
+ /**
63
+ * Caps automatic retries by counting attempts in the letter's diagnostics,
64
+ * then evicting once the budget is exhausted. This is the Axon idiom: the
65
+ * framework holds no retry counter — the policy authors it in diagnostics.
66
+ *
67
+ * - Initial failure → park with `attempts: 1` (unless `maxAttempts <= 1`, which
68
+ * evicts/drops immediately).
69
+ * - Each reprocess failure → increment `attempts`; once `attempts >= maxAttempts`
70
+ * the letter is evicted (given up on).
71
+ * - A `nonTransient` cause is parked once, never retried, and flagged for an
72
+ * operator.
73
+ *
74
+ * ```typescript
75
+ * trackingProcessor("balances")
76
+ * .deadLetterQueue(dlq)
77
+ * .enqueuePolicy(retryThenEvictPolicy({ maxAttempts: 5 }))
78
+ * ```
79
+ */
80
+ export function retryThenEvictPolicy(options) {
81
+ const { maxAttempts, nonTransient } = options;
82
+ return {
83
+ decide(letter, cause) {
84
+ if (nonTransient?.(cause)) {
85
+ return Decisions.enqueue(cause, { retryable: false });
86
+ }
87
+ const attempts = attemptsOf(letter) + 1;
88
+ if (attempts >= maxAttempts) {
89
+ return Decisions.evict();
90
+ }
91
+ return Decisions.enqueue(cause, { [ATTEMPTS_DIAGNOSTIC]: attempts });
92
+ },
93
+ };
94
+ }
95
+ //# sourceMappingURL=enqueue-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enqueue-policy.js","sourceRoot":"","sources":["../src/enqueue-policy.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAA;AAE7C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,yEAAyE;IACzE,OAAO,CAAC,KAAa,EAAE,WAAqC;QAC1D,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACpD,CAAC;IACD,sFAAsF;IACtF,OAAO,CAAC,KAAa,EAAE,WAAqC;QAC1D,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACpD,CAAC;IACD,iEAAiE;IACjE,YAAY;QACV,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAA;IACjC,CAAC;IACD,qFAAqF;IACrF,KAAK;QACH,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAA;IACjC,CAAC;IACD;;;OAGG;IACH,MAAM;QACJ,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;IAChC,CAAC;CACO,CAAA;AAEV;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,MAAM,CAAC,OAAO,EAAE,KAAK;YACnB,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAkB;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAA;IACnD,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC;AAoBD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA8B;IACjE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;IAC7C,OAAO;QACL,MAAM,CAAC,MAAM,EAAE,KAAK;YAClB,IAAI,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;YACvD,CAAC;YACD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACvC,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAC,KAAK,EAAE,CAAA;YAC1B,CAAC;YACD,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QACtE,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -2,7 +2,9 @@ import type { EventHandlerDefinition } from "./event-handler.js";
2
2
  import type { TokenStore } from "./token-store.js";
3
3
  import type { UoWRunner } from "./unit-of-work.js";
4
4
  import type { EventProcessingErrorHandler } from "./tracking-event-processor.js";
5
- import type { SequencedDeadLetterQueue } from "./dead-letter-queue.js";
5
+ import type { SequencedDeadLetterQueue, EnqueuePolicy } from "./dead-letter-queue.js";
6
+ import type { SequencingPolicy } from "./sequencing-policy.js";
7
+ import type { DeadLetterListener } from "./dead-letter-listener.js";
6
8
  /**
7
9
  * Base configuration shared by all event processor types.
8
10
  *
@@ -25,6 +27,16 @@ export interface TrackingProcessorModule extends EventProcessorBase {
25
27
  readonly unitOfWorkRunner?: UoWRunner;
26
28
  readonly errorHandler?: EventProcessingErrorHandler;
27
29
  readonly deadLetterQueue?: SequencedDeadLetterQueue;
30
+ /** Decides whether a failed event is enqueued in the DLQ. Default: always enqueue. */
31
+ readonly enqueuePolicy?: EnqueuePolicy;
32
+ /** Decides each event's ordered sequence for the DLQ. Default: first tag value. */
33
+ readonly sequencingPolicy?: SequencingPolicy;
34
+ /** Observability hook for dead-letter lifecycle events. Default: no-op. */
35
+ readonly deadLetterListener?: DeadLetterListener;
36
+ /** When true, resetTokens() also clears this processor's DLQ. Default: false. */
37
+ readonly resetClearsDeadLetters?: boolean;
38
+ /** When set, automatically drains the DLQ on this interval (ms). Off by default. */
39
+ readonly dlqRetryIntervalMs?: number;
28
40
  /** Number of segments created on first startup. Default 16 (Axon Framework parity). Always set by builder.build(). */
29
41
  readonly initialSegmentCount: number;
30
42
  readonly claimExtensionThresholdMs?: number;
@@ -77,6 +89,11 @@ export declare class TrackingProcessorBuilder {
77
89
  private _unitOfWorkRunner?;
78
90
  private _errorHandler?;
79
91
  private _deadLetterQueue?;
92
+ private _enqueuePolicy?;
93
+ private _sequencingPolicy?;
94
+ private _deadLetterListener?;
95
+ private _resetClearsDeadLetters?;
96
+ private _dlqRetryIntervalMs?;
80
97
  private _initialSegmentCount?;
81
98
  private _claimExtensionThresholdMs?;
82
99
  private _tokenClaimIntervalMs?;
@@ -85,7 +102,15 @@ export declare class TrackingProcessorBuilder {
85
102
  eventHandlers(...handlers: EventHandlerDefinition[]): this;
86
103
  /** Register a callback fired when the processor is reset (clears view state for replay). */
87
104
  onReset(fn: () => Promise<void> | void): this;
88
- /** Events per batch/transaction. Default: 100. */
105
+ /**
106
+ * Events per batch/transaction (one UnitOfWork). Default: 1 (Axon parity).
107
+ *
108
+ * A batch shares one UnitOfWork, so all events in it share the per-UoW
109
+ * `load()` cache, DCB read-set, and a single atomic commit. Keep the default
110
+ * of 1 for processors that make per-entity decisions via `load()`
111
+ * (automations) so each decision stays isolated. Raise it for read-model
112
+ * projections that only apply idempotent view updates and want throughput.
113
+ */
89
114
  batchSize(size: number): this;
90
115
  /** Polling interval in ms. Default: 500. */
91
116
  pollingIntervalMs(ms: number): this;
@@ -99,8 +124,22 @@ export declare class TrackingProcessorBuilder {
99
124
  unitOfWorkRunner(runner: UoWRunner): this;
100
125
  /** Override the error handler for this processor. */
101
126
  errorHandler(handler: EventProcessingErrorHandler): this;
102
- /** Set a dead letter queue for this processor. */
127
+ /**
128
+ * Set a dead letter queue for this processor. When set, handler failures are
129
+ * parked in the queue and the processor advances past them (Option A) rather
130
+ * than redelivering the failed batch indefinitely.
131
+ */
103
132
  deadLetterQueue(queue: SequencedDeadLetterQueue): this;
133
+ /** Policy deciding whether a failed event is enqueued in the DLQ. Default: always. */
134
+ enqueuePolicy(policy: EnqueuePolicy): this;
135
+ /** Policy deciding each event's ordered sequence for the DLQ. Default: first tag value. */
136
+ sequencingPolicy(policy: SequencingPolicy): this;
137
+ /** Observability hook for dead-letter lifecycle events. */
138
+ deadLetterListener(listener: DeadLetterListener): this;
139
+ /** When true, resetTokens() also clears this processor's DLQ (Axon allowReset). */
140
+ resetClearsDeadLetters(enabled?: boolean): this;
141
+ /** Automatically drain the DLQ on this interval (ms). Omit to disable scheduled retries. */
142
+ dlqRetryInterval(ms: number): this;
104
143
  /** Number of segments to create on first startup. Default: 16 (Axon Framework parity). */
105
144
  initialSegmentCount(count: number): this;
106
145
  /** @internal Build the processor configuration. */
@@ -1 +1 @@
1
- {"version":3,"file":"event-processor-builder.d.ts","sourceRoot":"","sources":["../src/event-processor-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-processor-builder.d.ts","sourceRoot":"","sources":["../src/event-processor-builder.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,11 @@ export class TrackingProcessorBuilder {
36
36
  _unitOfWorkRunner;
37
37
  _errorHandler;
38
38
  _deadLetterQueue;
39
+ _enqueuePolicy;
40
+ _sequencingPolicy;
41
+ _deadLetterListener;
42
+ _resetClearsDeadLetters;
43
+ _dlqRetryIntervalMs;
39
44
  _initialSegmentCount;
40
45
  _claimExtensionThresholdMs;
41
46
  _tokenClaimIntervalMs;
@@ -52,7 +57,15 @@ export class TrackingProcessorBuilder {
52
57
  this._onReset = fn;
53
58
  return this;
54
59
  }
55
- /** Events per batch/transaction. Default: 100. */
60
+ /**
61
+ * Events per batch/transaction (one UnitOfWork). Default: 1 (Axon parity).
62
+ *
63
+ * A batch shares one UnitOfWork, so all events in it share the per-UoW
64
+ * `load()` cache, DCB read-set, and a single atomic commit. Keep the default
65
+ * of 1 for processors that make per-entity decisions via `load()`
66
+ * (automations) so each decision stays isolated. Raise it for read-model
67
+ * projections that only apply idempotent view updates and want throughput.
68
+ */
56
69
  batchSize(size) {
57
70
  this._batchSize = size;
58
71
  return this;
@@ -81,11 +94,40 @@ export class TrackingProcessorBuilder {
81
94
  this._errorHandler = handler;
82
95
  return this;
83
96
  }
84
- /** Set a dead letter queue for this processor. */
97
+ /**
98
+ * Set a dead letter queue for this processor. When set, handler failures are
99
+ * parked in the queue and the processor advances past them (Option A) rather
100
+ * than redelivering the failed batch indefinitely.
101
+ */
85
102
  deadLetterQueue(queue) {
86
103
  this._deadLetterQueue = queue;
87
104
  return this;
88
105
  }
106
+ /** Policy deciding whether a failed event is enqueued in the DLQ. Default: always. */
107
+ enqueuePolicy(policy) {
108
+ this._enqueuePolicy = policy;
109
+ return this;
110
+ }
111
+ /** Policy deciding each event's ordered sequence for the DLQ. Default: first tag value. */
112
+ sequencingPolicy(policy) {
113
+ this._sequencingPolicy = policy;
114
+ return this;
115
+ }
116
+ /** Observability hook for dead-letter lifecycle events. */
117
+ deadLetterListener(listener) {
118
+ this._deadLetterListener = listener;
119
+ return this;
120
+ }
121
+ /** When true, resetTokens() also clears this processor's DLQ (Axon allowReset). */
122
+ resetClearsDeadLetters(enabled = true) {
123
+ this._resetClearsDeadLetters = enabled;
124
+ return this;
125
+ }
126
+ /** Automatically drain the DLQ on this interval (ms). Omit to disable scheduled retries. */
127
+ dlqRetryInterval(ms) {
128
+ this._dlqRetryIntervalMs = ms;
129
+ return this;
130
+ }
89
131
  /** Number of segments to create on first startup. Default: 16 (Axon Framework parity). */
90
132
  initialSegmentCount(count) {
91
133
  this._initialSegmentCount = count;
@@ -103,6 +145,11 @@ export class TrackingProcessorBuilder {
103
145
  unitOfWorkRunner: this._unitOfWorkRunner,
104
146
  errorHandler: this._errorHandler,
105
147
  deadLetterQueue: this._deadLetterQueue,
148
+ enqueuePolicy: this._enqueuePolicy,
149
+ sequencingPolicy: this._sequencingPolicy,
150
+ deadLetterListener: this._deadLetterListener,
151
+ resetClearsDeadLetters: this._resetClearsDeadLetters,
152
+ dlqRetryIntervalMs: this._dlqRetryIntervalMs,
106
153
  initialSegmentCount: this._initialSegmentCount ?? 16,
107
154
  claimExtensionThresholdMs: this._claimExtensionThresholdMs,
108
155
  tokenClaimIntervalMs: this._tokenClaimIntervalMs,
@@ -1 +1 @@
1
- {"version":3,"file":"event-processor-builder.js","sourceRoot":"","sources":["../src/event-processor-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-processor-builder.js","sourceRoot":"","sources":["../src/event-processor-builder.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -42,8 +42,12 @@ export { registerCommandHandlersNatively, createCommandInvocation, type MinimalC
42
42
  export { registerQueryHandlersNatively } from "./query-handling-module.js";
43
43
  export { type SubscribingEventProcessor, type SubscribingEventProcessorOptions, createSubscribingEventProcessor, } from "./subscribing-event-processor.js";
44
44
  export { type StreamingEventProcessor, type StreamingEventProcessorOptions, type EventProcessorStatus, createStreamingEventProcessor, } from "./streaming-event-processor.js";
45
- export { type DeadLetter, type EnqueueDecision, type EnqueuePolicy, type SequencedDeadLetterQueue, alwaysEnqueuePolicy, createDeadLetter, createInMemoryDeadLetterQueue, DeadLetterQueueOverflowError, } from "./dead-letter-queue.js";
45
+ export { type DeadLetter, type EnqueueDecision, type EnqueuePolicy, type SequencedDeadLetterQueue, createDeadLetter, createInMemoryDeadLetterQueue, DeadLetterQueueOverflowError, } from "./dead-letter-queue.js";
46
+ export { Decisions, alwaysEnqueuePolicy, retryThenEvictPolicy, type RetryThenEvictOptions, ATTEMPTS_DIAGNOSTIC, } from "./enqueue-policy.js";
46
47
  export { type DeadLetteringOptions, createDeadLetteringDelivery, } from "./dead-lettering-handler.js";
48
+ export { type DeadLetterReprocessor, type DeadLetterReprocessorOptions, type DeadLetterReplay, createDeadLetterReprocessor, } from "./dead-letter-reprocessor.js";
49
+ export { type DeadLetterListener, noOpDeadLetterListener, loggingDeadLetterListener, multiDeadLetterListener, } from "./dead-letter-listener.js";
50
+ export { type SequencingPolicy, sequentialPerTag, defaultSequencingPolicy, fullConcurrencyPolicy, } from "./sequencing-policy.js";
47
51
  export { type IntermediateEventRepresentation, type EventUpcaster, singleEventUpcaster, upcasterChain, upcastingSerializer, } from "./upcaster.js";
48
52
  export { type SchemaRegistry, jsonSerializer, zodValidatingSerializer, createEventSchemaRegistry, createCommandSchemaRegistry, createQuerySchemaRegistry, } from "./serializer.js";
49
53
  export { type MessageMonitor, type MonitorCallback, noOpMessageMonitor, multiMessageMonitor, } from "./message-monitor.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
@@ -85,9 +85,17 @@ export { createSubscribingEventProcessor, } from "./subscribing-event-processor.
85
85
  // Streaming event processor
86
86
  export { createStreamingEventProcessor, } from "./streaming-event-processor.js";
87
87
  // Dead letter queue
88
- export { alwaysEnqueuePolicy, createDeadLetter, createInMemoryDeadLetterQueue, DeadLetterQueueOverflowError, } from "./dead-letter-queue.js";
88
+ export { createDeadLetter, createInMemoryDeadLetterQueue, DeadLetterQueueOverflowError, } from "./dead-letter-queue.js";
89
+ // Enqueue policies + decisions
90
+ export { Decisions, alwaysEnqueuePolicy, retryThenEvictPolicy, ATTEMPTS_DIAGNOSTIC, } from "./enqueue-policy.js";
89
91
  // Dead-lettering event delivery
90
92
  export { createDeadLetteringDelivery, } from "./dead-lettering-handler.js";
93
+ // Dead-letter reprocessing
94
+ export { createDeadLetterReprocessor, } from "./dead-letter-reprocessor.js";
95
+ // Dead-letter observability
96
+ export { noOpDeadLetterListener, loggingDeadLetterListener, multiDeadLetterListener, } from "./dead-letter-listener.js";
97
+ // Sequencing policy
98
+ export { sequentialPerTag, defaultSequencingPolicy, fullConcurrencyPolicy, } from "./sequencing-policy.js";
91
99
  // Upcasting
92
100
  export { singleEventUpcaster, upcasterChain, upcastingSerializer, } from "./upcaster.js";
93
101
  // Serialization
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAON,MAAM,cAAc,CAAA;AAErB,cAAc;AACd,OAAO,EAKL,OAAO,EACP,KAAK,EACL,KAAK,GACN,MAAM,iBAAiB,CAAA;AAExB,iBAAiB;AACjB,OAAO,EAML,aAAa,EACb,IAAI,EACJ,MAAM,EACN,MAAM,GACP,MAAM,qBAAqB,CAAA;AAE5B,sEAAsE;AACtE,OAAO,EACL,KAAK;AAEL,mDAAmD;AACnD,EAAE,IAAI,OAAO,EACb,eAAe,EACf,QAAQ,EACR,aAAa,EACb,OAAO,EACP,YAAY,EACZ,kBAAkB,EAClB,aAAa,GACd,MAAM,uBAAuB,CAAA;AAE9B,sEAAsE;AACtE,OAAO,EAEL,QAAQ,EACR,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAE1B,uBAAuB;AACvB,mEAAmE;AACnE,iCAAiC;AACjC,8GAA8G;AAC9G,OAAO,EAIL,EAAE,EACF,OAAO,GACR,MAAM,cAAc,CAAA;AAErB,mBAAmB;AACnB,OAAO,EAEL,cAAc,GACf,MAAM,sBAAsB,CAAA;AAE7B,iBAAiB;AACjB,OAAO,EAEL,YAAY,GACb,MAAM,oBAAoB,CAAA;AAE3B,iBAAiB;AACjB,OAAO,EAEL,YAAY,GACb,MAAM,oBAAoB,CAAA;AAE3B,eAAe;AACf,OAAO,EAGN,MAAM,kBAAkB,CAAA;AAEzB,qBAAqB;AACrB,OAAO,EAEL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAA;AAE9B,oBAAoB;AACpB,OAAO,EAGL,8BAA8B,GAC/B,MAAM,uBAAuB,CAAA;AAE9B,mBAAmB;AACnB,OAAO,EAEL,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,6BAA6B,EAC7B,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,uBAAuB,CAAA;AAE9B,iBAAiB;AACjB,OAAO,EAAmB,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAiB,MAAM,gBAAgB,CAAA;AAE9C,sBAAsB;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAE5D,8BAA8B;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAExE,yBAAyB;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,WAAW;AACX,OAAO,EAGL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,uBAAuB;AACvB,OAAO,EAGL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAEL,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,0BAA0B,CAAA;AAEjC,4BAA4B;AAC5B,OAAO,EAAkB,MAAM,iBAAiB,CAAA;AAEhD,kCAAkC;AAClC,OAAO,EAGL,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AAEvB,mCAAmC;AACnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAExE,gBAAgB;AAChB,OAAO,EAEL,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAE3B,mCAAmC;AACnC,OAAO,EAAuB,MAAM,sBAAsB,CAAA;AAE1D,gCAAgC;AAChC,OAAO,EAKL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAE1B,kBAAkB;AAClB,OAAO,EAIL,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,+BAA+B,CAAA;AAEtC,WAAW;AACX,OAAO,EAEL,YAAY,EACZ,OAAO,EACP,cAAc,EACd,YAAY,EACZ,aAAa,EACb,WAAW,EACX,YAAY,EACZ,MAAM,EACN,cAAc,GACf,MAAM,cAAc,CAAA;AAErB,cAAc;AACd,OAAO,EAEL,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,kBAAkB,CAAA;AAEzB,kBAAkB;AAClB,OAAO,EAIL,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,WAAW,EACX,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAE5B,8CAA8C;AAC9C,OAAO,EACL,QAAQ,EACR,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAE1B,yBAAyB;AACzB,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,kCAAkC,EAClC,eAAe,GAChB,MAAM,kBAAkB,CAAA;AAEzB,uBAAuB;AACvB,OAAO,EAEL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAElC,4DAA4D;AAC5D,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAE5D,mBAAmB;AACnB,OAAO,EAIN,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGL,4BAA4B,GAC7B,MAAM,gCAAgC,CAAA;AAEvC,sFAAsF;AACtF,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,GAExB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAA;AAE1E,8BAA8B;AAC9B,OAAO,EAGL,+BAA+B,GAChC,MAAM,kCAAkC,CAAA;AAEzC,4BAA4B;AAC5B,OAAO,EAIL,6BAA6B,GAC9B,MAAM,gCAAgC,CAAA;AAEvC,oBAAoB;AACpB,OAAO,EAKL,gBAAgB,EAChB,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,wBAAwB,CAAA;AAE/B,+BAA+B;AAC/B,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EAEpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAE5B,gCAAgC;AAChC,OAAO,EAEL,2BAA2B,GAC5B,MAAM,6BAA6B,CAAA;AAEpC,2BAA2B;AAC3B,OAAO,EAIL,2BAA2B,GAC5B,MAAM,8BAA8B,CAAA;AAErC,4BAA4B;AAC5B,OAAO,EAEL,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,2BAA2B,CAAA;AAElC,oBAAoB;AACpB,OAAO,EAEL,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAA;AAE/B,YAAY;AACZ,OAAO,EAGL,mBAAmB,EACnB,aAAa,EACb,mBAAmB,GACpB,MAAM,eAAe,CAAA;AAEtB,gBAAgB;AAChB,OAAO,EAEL,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,iBAAiB,CAAA;AAExB,mBAAmB;AACnB,OAAO,EAGL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAEL,4BAA4B,GAC7B,MAAM,+BAA+B,CAAA;AAEtC,8BAA8B;AAC9B,OAAO,EAIL,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,gCAAgC,GACjC,MAAM,+BAA+B,CAAA;AAEtC,mCAAmC;AACnC,OAAO,EAA+B,MAAM,8BAA8B,CAAA;AAE1E,2BAA2B;AAC3B,OAAO,EAIL,wBAAwB,EACxB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,8BAA8B,CAAA;AAErC,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA"}
@@ -29,7 +29,7 @@ import type { SequencedDeadLetterQueue } from "./dead-letter-queue.js";
29
29
  * with `registerEventProcessor()` instead.
30
30
  */
31
31
  export interface ProcessorConfiguration {
32
- /** Events per transaction. Default: 100 */
32
+ /** Events per transaction (one UnitOfWork). Default: 1 (Axon parity). */
33
33
  batchSize?: number;
34
34
  /** Number of segments to create on first startup. Default: 1 */
35
35
  initialSegmentCount?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"processor-configuration.d.ts","sourceRoot":"","sources":["../src/processor-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAChF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAEtE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B,mDAAmD;IACnD,UAAU,CAAC,EAAE,UAAU,CAAA;IAEvB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAE5B,qDAAqD;IACrD,YAAY,CAAC,EAAE,2BAA2B,CAAA;IAE1C,4CAA4C;IAC5C,eAAe,CAAC,EAAE,wBAAwB,CAAA;IAE1C,sDAAsD;IACtD,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAElC,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B"}
1
+ {"version":3,"file":"processor-configuration.d.ts","sourceRoot":"","sources":["../src/processor-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAChF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAEtE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B,mDAAmD;IACnD,UAAU,CAAC,EAAE,UAAU,CAAA;IAEvB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAE5B,qDAAqD;IACrD,YAAY,CAAC,EAAE,2BAA2B,CAAA;IAE1C,4CAA4C;IAC5C,eAAe,CAAC,EAAE,wBAAwB,CAAA;IAE1C,sDAAsD;IACtD,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAElC,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B"}
@@ -0,0 +1,41 @@
1
+ import type { EventMessage } from "./message.js";
2
+ /**
3
+ * Decides which ordered sequence an event belongs to.
4
+ *
5
+ * Events sharing a sequence identifier are processed in order; if one is
6
+ * dead-lettered, subsequent events in the same sequence are parked behind it
7
+ * (see {@link createDeadLetteringDelivery}). This is the minimal analog of
8
+ * Axon's `SequencingPolicy` — a plain function rather than a class hierarchy,
9
+ * because Kronos does not (yet) do segmented parallel processing where the
10
+ * policy would also drive segment assignment. When/if it does, this same type
11
+ * is the seam to extend.
12
+ */
13
+ export type SequencingPolicy = (event: EventMessage) => string;
14
+ /**
15
+ * Sequences events by the value of a named tag, falling back to the event name
16
+ * when the tag is absent. The DCB/tag-world analog of Axon's
17
+ * `SequentialPerAggregatePolicy` (aggregate id → sequence).
18
+ *
19
+ * Prefer this — naming the tag explicitly — over relying on tag *order*.
20
+ *
21
+ * ```typescript
22
+ * trackingProcessor("balances")
23
+ * .deadLetterQueue(dlq)
24
+ * .sequencingPolicy(sequentialPerTag("accountId"))
25
+ * ```
26
+ */
27
+ export declare function sequentialPerTag(tagKey: string): SequencingPolicy;
28
+ /**
29
+ * Default policy: sequence by the first tag value, else the event name.
30
+ *
31
+ * Order-dependent on the tag list, so it is a reasonable default but a poor
32
+ * deliberate choice — prefer {@link sequentialPerTag} with an explicit key.
33
+ */
34
+ export declare const defaultSequencingPolicy: SequencingPolicy;
35
+ /**
36
+ * Full concurrency: every event is its own singleton sequence (keyed by the
37
+ * unique message identifier), so no two events ever block each other. Use when
38
+ * handlers carry no cross-event ordering requirement.
39
+ */
40
+ export declare const fullConcurrencyPolicy: SequencingPolicy;
41
+ //# sourceMappingURL=sequencing-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequencing-policy.d.ts","sourceRoot":"","sources":["../src/sequencing-policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAA;AAE9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAKjE;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAKrC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAA8C,CAAA"}
@@ -0,0 +1,39 @@
1
+ import { qualifiedNameToString } from "@kronos-ts/common";
2
+ /**
3
+ * Sequences events by the value of a named tag, falling back to the event name
4
+ * when the tag is absent. The DCB/tag-world analog of Axon's
5
+ * `SequentialPerAggregatePolicy` (aggregate id → sequence).
6
+ *
7
+ * Prefer this — naming the tag explicitly — over relying on tag *order*.
8
+ *
9
+ * ```typescript
10
+ * trackingProcessor("balances")
11
+ * .deadLetterQueue(dlq)
12
+ * .sequencingPolicy(sequentialPerTag("accountId"))
13
+ * ```
14
+ */
15
+ export function sequentialPerTag(tagKey) {
16
+ return (event) => {
17
+ const match = event.tags.find((t) => t.key === tagKey);
18
+ return match ? match.value : qualifiedNameToString(event.name);
19
+ };
20
+ }
21
+ /**
22
+ * Default policy: sequence by the first tag value, else the event name.
23
+ *
24
+ * Order-dependent on the tag list, so it is a reasonable default but a poor
25
+ * deliberate choice — prefer {@link sequentialPerTag} with an explicit key.
26
+ */
27
+ export const defaultSequencingPolicy = (event) => {
28
+ if (event.tags.length > 0) {
29
+ return event.tags[0].value;
30
+ }
31
+ return qualifiedNameToString(event.name);
32
+ };
33
+ /**
34
+ * Full concurrency: every event is its own singleton sequence (keyed by the
35
+ * unique message identifier), so no two events ever block each other. Use when
36
+ * handlers carry no cross-event ordering requirement.
37
+ */
38
+ export const fullConcurrencyPolicy = (event) => event.identifier;
39
+ //# sourceMappingURL=sequencing-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequencing-policy.js","sourceRoot":"","sources":["../src/sequencing-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAgBzD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAA;QACtD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChE,CAAC,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAqB,CAAC,KAAK,EAAE,EAAE;IACjE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,CAAA;IAC7B,CAAC;IACD,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAqB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAA"}
@@ -2,6 +2,9 @@ import type { EventHandlerDefinition } from "./event-handler.js";
2
2
  import type { StreamableEventSource } from "./event-source.js";
3
3
  import type { UoWRunner } from "./unit-of-work.js";
4
4
  import type { TokenStore } from "./token-store.js";
5
+ import type { SequencedDeadLetterQueue, EnqueuePolicy } from "./dead-letter-queue.js";
6
+ import type { SequencingPolicy } from "./sequencing-policy.js";
7
+ import { type DeadLetterListener } from "./dead-letter-listener.js";
5
8
  import type { EventProcessingErrorHandler } from "./tracking-event-processor.js";
6
9
  import type { HandlerEnhancerDefinition } from "./handler-enhancer.js";
7
10
  import type { CommandBus } from "./command-bus.js";
@@ -36,6 +39,9 @@ export interface StreamingEventProcessor {
36
39
  start(): Promise<void>;
37
40
  stop(): void;
38
41
  resetTokens(startPosition?: bigint, resetContext?: unknown): Promise<void>;
42
+ /** Replay parked dead letters back through the handlers (oldest matching
43
+ * sequence). No-op returning false when no DLQ is configured. */
44
+ reprocessDeadLetters(filter?: (sequenceId: string) => boolean): Promise<boolean>;
39
45
  splitSegment(segmentId: number): Promise<boolean>;
40
46
  mergeSegment(segmentId: number): Promise<boolean>;
41
47
  releaseSegment(segmentId: number): Promise<void>;
@@ -54,7 +60,27 @@ export interface StreamingEventProcessorOptions {
54
60
  onEventDelivery?: () => void;
55
61
  unitOfWorkRunner?: UoWRunner;
56
62
  tokenStore?: TokenStore;
63
+ /**
64
+ * Dead letter queue for poison-pill handling. When set, a handler failure
65
+ * parks the event in the DLQ (per {@link enqueuePolicy}) and the batch
66
+ * commits so the token advances past it — instead of redelivering the batch
67
+ * forever. The enqueue runs inside the batch UnitOfWork, so it commits in the
68
+ * same transaction as the token update.
69
+ */
70
+ deadLetterQueue?: SequencedDeadLetterQueue;
71
+ /** Decides whether a failed event is enqueued. Default: always enqueue. */
72
+ enqueuePolicy?: EnqueuePolicy;
73
+ /** Decides each event's ordered sequence for the DLQ. Default: first tag value. */
74
+ sequencingPolicy?: SequencingPolicy;
75
+ /** Observability hook for dead-letter lifecycle events. Default: no-op. */
76
+ deadLetterListener?: DeadLetterListener;
77
+ /** When true, resetTokens() also clears this processor's DLQ (Axon allowReset). Default: false. */
78
+ resetClearsDeadLetters?: boolean;
79
+ /** When set, automatically drains the DLQ on this interval (ms). Off by default. */
80
+ dlqRetryIntervalMs?: number;
57
81
  batchSize?: number;
82
+ /** Delay before retrying after a batch failure, in ms. Backs off to avoid hot-looping a deterministic failure. */
83
+ errorBackoffMs?: number;
58
84
  errorHandler?: EventProcessingErrorHandler;
59
85
  /** Optional handler enhancer applied to all event handlers at setup time. */
60
86
  handlerEnhancer?: HandlerEnhancerDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"streaming-event-processor.d.ts","sourceRoot":"","sources":["../src/streaming-event-processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAiC,MAAM,mBAAmB,CAAA;AAC7F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAEhF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAWtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAK9C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,0BAA0B;IAC1B,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IACrD,0EAA0E;IAC1E,aAAa,IAAI,OAAO,CAAA;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,IAAI,IAAI,IAAI,CAAA;IACZ,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1E,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACjD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACjD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,qBAAqB,CAAA;IAClC,aAAa,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAA;IACpD,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,wEAAwE;IACxE,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,oGAAoG;IACpG,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,2BAA2B,CAAA;IAC1C,6EAA6E;IAC7E,eAAe,CAAC,EAAE,yBAAyB,CAAA;IAC3C,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACrC;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,8BAA8B,GACtC,uBAAuB,CAwQzB"}
1
+ {"version":3,"file":"streaming-event-processor.d.ts","sourceRoot":"","sources":["../src/streaming-event-processor.ts"],"names":[],"mappings":"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"}