node-cqrs 1.0.0-rc.39 → 1.0.0-rc.40

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 (35) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/cjs/AbstractAggregate.js +16 -0
  3. package/dist/cjs/AbstractAggregate.js.map +1 -1
  4. package/dist/cjs/AggregateCommandHandler.js +8 -6
  5. package/dist/cjs/AggregateCommandHandler.js.map +1 -1
  6. package/dist/cjs/CqrsContainerBuilder.js +4 -1
  7. package/dist/cjs/CqrsContainerBuilder.js.map +1 -1
  8. package/dist/cjs/in-memory/InMemoryEventStorage.js +1 -2
  9. package/dist/cjs/in-memory/InMemoryEventStorage.js.map +1 -1
  10. package/dist/cjs/interfaces/IDispatchPipelineProcessor.js.map +1 -1
  11. package/dist/cjs/interfaces/IEventStorageWriter.js.map +1 -1
  12. package/dist/esm/AbstractAggregate.js +16 -0
  13. package/dist/esm/AbstractAggregate.js.map +1 -1
  14. package/dist/esm/AggregateCommandHandler.js +8 -6
  15. package/dist/esm/AggregateCommandHandler.js.map +1 -1
  16. package/dist/esm/CqrsContainerBuilder.js +4 -1
  17. package/dist/esm/CqrsContainerBuilder.js.map +1 -1
  18. package/dist/esm/in-memory/InMemoryEventStorage.js +1 -2
  19. package/dist/esm/in-memory/InMemoryEventStorage.js.map +1 -1
  20. package/dist/esm/interfaces/IDispatchPipelineProcessor.js.map +1 -1
  21. package/dist/esm/interfaces/IEventStorageWriter.js.map +1 -1
  22. package/package.json +2 -2
  23. package/src/AbstractAggregate.ts +19 -0
  24. package/src/AggregateCommandHandler.ts +12 -11
  25. package/src/CqrsContainerBuilder.ts +4 -1
  26. package/src/in-memory/InMemoryEventStorage.ts +3 -7
  27. package/src/interfaces/IAggregate.ts +10 -9
  28. package/src/interfaces/IDispatchPipelineProcessor.ts +5 -0
  29. package/src/interfaces/IEventStorageWriter.ts +1 -5
  30. package/types/AbstractAggregate.d.ts +13 -1
  31. package/types/AggregateCommandHandler.d.ts +2 -2
  32. package/types/in-memory/InMemoryEventStorage.d.ts +5 -5
  33. package/types/interfaces/IAggregate.d.ts +5 -5
  34. package/types/interfaces/IDispatchPipelineProcessor.d.ts +4 -0
  35. package/types/interfaces/IEventStorageWriter.d.ts +1 -4
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # [1.0.0-rc.40](https://github.com/snatalenko/node-cqrs/compare/v1.0.0-rc.39...v1.0.0-rc.40) (2026-02-26)
2
+
3
+
4
+
1
5
  # [1.0.0-rc.39](https://github.com/snatalenko/node-cqrs/compare/v1.0.0-rc.38...v1.0.0-rc.39) (2026-02-26)
2
6
 
3
7
 
@@ -19,6 +19,22 @@ class AbstractAggregate {
19
19
  static get handles() {
20
20
  return (0, index_ts_2.getMessageHandlerNames)(this);
21
21
  }
22
+ /**
23
+ * Optional list of event types that are required to restore the aggregate state.
24
+ *
25
+ * @see IAggregateConstructor
26
+ */
27
+ static get restoresFrom() {
28
+ return undefined;
29
+ }
30
+ /**
31
+ * Defines retry behavior when a ConcurrencyError is thrown during event dispatch.
32
+ *
33
+ * @see IAggregateConstructor
34
+ */
35
+ static get retryOnConcurrencyError() {
36
+ return undefined;
37
+ }
22
38
  /**
23
39
  * Convenience helper to create an `AggregateCommandHandler` for this aggregate type and
24
40
  * subscribe it to the provided `commandBus`.
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractAggregate.js","sourceRoot":"","sources":["../../src/AbstractAggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractAggregate.js","sourceRoot":"","sources":["../../src/AbstractAggregate.ts"],"names":[],"mappings":"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"}
@@ -10,13 +10,15 @@ function normalizeRetryResolver(value) {
10
10
  return value;
11
11
  if (value === false)
12
12
  return () => false;
13
+ if (value === 'ignore')
14
+ return () => 'ignore';
13
15
  if (typeof value === 'number')
14
- return (err, attempt) => err instanceof index_ts_2.ConcurrencyError && attempt < value;
16
+ return (err, events, attempt) => err instanceof index_ts_2.ConcurrencyError && attempt < value;
15
17
  if ((0, isObject_ts_1.isObject)(value)) {
16
18
  const { maxRetries = DEFAULT_MAX_RETRY_ATTEMPTS, ignoreAfterMaxRetries = false } = value;
17
19
  (0, index_ts_1.assertNonNegativeInteger)(maxRetries, 'retryOnConcurrencyError.maxRetries');
18
20
  (0, index_ts_1.assertBoolean)(ignoreAfterMaxRetries, 'retryOnConcurrencyError.ignoreAfterMaxRetries');
19
- return (err, attempt) => {
21
+ return (err, events, attempt) => {
20
22
  if (!(err instanceof index_ts_2.ConcurrencyError))
21
23
  return false;
22
24
  if (attempt < maxRetries)
@@ -25,7 +27,7 @@ function normalizeRetryResolver(value) {
25
27
  };
26
28
  }
27
29
  // undefined or true — default behavior
28
- return (err, attempt) => err instanceof index_ts_2.ConcurrencyError && attempt < DEFAULT_MAX_RETRY_ATTEMPTS;
30
+ return (err, events, attempt) => err instanceof index_ts_2.ConcurrencyError && attempt < DEFAULT_MAX_RETRY_ATTEMPTS;
29
31
  }
30
32
  /**
31
33
  * Aggregate command handler.
@@ -116,7 +118,7 @@ class AggregateCommandHandler {
116
118
  try {
117
119
  for (let attempt = 0;; attempt++) {
118
120
  if (attempt > 0)
119
- this.#logger?.info(`retrying "${cmd.type}" command on aggregate ${aggregateId}, attempt ${attempt + 1}`);
121
+ this.#logger?.warn(`retrying "${cmd.type}" command on aggregate ${aggregateId}, attempt ${attempt + 1}`);
120
122
  // Read the current cache entry after acquiring the lock. On the first attempt
121
123
  // this is the pre-warmed (possibly shared) instance; on retries it is the
122
124
  // fresh instance placed into the cache by the error handler below.
@@ -137,11 +139,11 @@ class AggregateCommandHandler {
137
139
  // queued on the lock start from a clean state.
138
140
  if (aggregateId)
139
141
  this.#aggregatesCache.set(aggregateId, this.#restoreAggregate(aggregateId));
140
- const retryDecision = this.#shouldRetry(err, attempt);
142
+ const retryDecision = this.#shouldRetry(err, events, attempt);
141
143
  if (!retryDecision)
142
144
  throw err;
143
145
  if (retryDecision === 'ignore' && events?.length) {
144
- this.#logger?.info(`"${cmd.type}" concurrency error ignored after ${attempt + 1} attempt(s), force-dispatching`);
146
+ this.#logger?.warn(`"${cmd.type}" concurrency error ignored after ${attempt + 1} attempt(s), force-dispatching`);
145
147
  await this.#eventStore.dispatch(events, { ignoreConcurrencyError: true });
146
148
  return events;
147
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AggregateCommandHandler.js","sourceRoot":"","sources":["../../src/AggregateCommandHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AggregateCommandHandler.js","sourceRoot":"","sources":["../../src/AggregateCommandHandler.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,10 @@ class CqrsContainerBuilder extends di0_1.ContainerBuilder {
72
72
  const commandHandlerFactory = (container) => container.createInstance(AggregateCommandHandler_ts_1.AggregateCommandHandler, {
73
73
  aggregateFactory: (options) => container.createInstance(AggregateType, options),
74
74
  handles: AggregateType.handles,
75
- restoresFrom: AggregateType.restoresFrom
75
+ restoresFrom: AggregateType.restoresFrom,
76
+ ...AggregateType.retryOnConcurrencyError !== undefined && {
77
+ retryOnConcurrencyError: AggregateType.retryOnConcurrencyError
78
+ }
76
79
  });
77
80
  return this.registerCommandHandler(commandHandlerFactory);
78
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CqrsContainerBuilder.js","sourceRoot":"","sources":["../../src/CqrsContainerBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CqrsContainerBuilder.js","sourceRoot":"","sources":["../../src/CqrsContainerBuilder.ts"],"names":[],"mappings":"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"}
@@ -95,8 +95,7 @@ class InMemoryEventStorage {
95
95
  throw new Error('Event batch does not contain `event`');
96
96
  events.push(event);
97
97
  }
98
- const ignoreConcurrencyError = batch.some(item => item.ignoreConcurrencyError === true);
99
- if (ignoreConcurrencyError)
98
+ if (batch.at(0)?.ignoreConcurrencyError)
100
99
  await this.commitEvents(events, { ignoreConcurrencyError: true });
101
100
  else
102
101
  await this.commitEvents(events);
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryEventStorage.js","sourceRoot":"","sources":["../../../src/in-memory/InMemoryEventStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InMemoryEventStorage.js","sourceRoot":"","sources":["../../../src/in-memory/InMemoryEventStorage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IDispatchPipelineProcessor.js","sourceRoot":"","sources":["../../../src/interfaces/IDispatchPipelineProcessor.ts"],"names":[],"mappings":";;;AACA,+CAAyC;AA8BlC,MAAM,2BAA2B,GAAG,CAAC,GAAY,EAAqC,EAAE,CAC9F,IAAA,sBAAQ,EAAC,GAAG,CAAC;OACV,SAAS,IAAI,GAAG;OAChB,OAAQ,GAAkC,CAAC,OAAO,KAAK,UAAU,CAAC;AAHzD,QAAA,2BAA2B,+BAG8B"}
1
+ {"version":3,"file":"IDispatchPipelineProcessor.js","sourceRoot":"","sources":["../../../src/interfaces/IDispatchPipelineProcessor.ts"],"names":[],"mappings":";;;AACA,+CAAyC;AAmClC,MAAM,2BAA2B,GAAG,CAAC,GAAY,EAAqC,EAAE,CAC9F,IAAA,sBAAQ,EAAC,GAAG,CAAC;OACV,SAAS,IAAI,GAAG;OAChB,OAAQ,GAAkC,CAAC,OAAO,KAAK,UAAU,CAAC;AAHzD,QAAA,2BAA2B,+BAG8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"IEventStorageWriter.js","sourceRoot":"","sources":["../../../src/interfaces/IEventStorageWriter.ts"],"names":[],"mappings":";;;AACA,+CAAyC;AAelC,MAAM,oBAAoB,GAAG,CAAC,GAAY,EAA8B,EAAE,CAChF,IAAA,sBAAQ,EAAC,GAAG,CAAC;OACV,cAAc,IAAI,GAAG;OACrB,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,CAAC;AAH9B,QAAA,oBAAoB,wBAGU"}
1
+ {"version":3,"file":"IEventStorageWriter.js","sourceRoot":"","sources":["../../../src/interfaces/IEventStorageWriter.ts"],"names":[],"mappings":";;;AACA,+CAAyC;AAWlC,MAAM,oBAAoB,GAAG,CAAC,GAAY,EAA8B,EAAE,CAChF,IAAA,sBAAQ,EAAC,GAAG,CAAC;OACV,cAAc,IAAI,GAAG;OACrB,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,CAAC;AAH9B,QAAA,oBAAoB,wBAGU"}
@@ -16,6 +16,22 @@ export class AbstractAggregate {
16
16
  static get handles() {
17
17
  return getMessageHandlerNames(this);
18
18
  }
19
+ /**
20
+ * Optional list of event types that are required to restore the aggregate state.
21
+ *
22
+ * @see IAggregateConstructor
23
+ */
24
+ static get restoresFrom() {
25
+ return undefined;
26
+ }
27
+ /**
28
+ * Defines retry behavior when a ConcurrencyError is thrown during event dispatch.
29
+ *
30
+ * @see IAggregateConstructor
31
+ */
32
+ static get retryOnConcurrencyError() {
33
+ return undefined;
34
+ }
19
35
  /**
20
36
  * Convenience helper to create an `AggregateCommandHandler` for this aggregate type and
21
37
  * subscribe it to the provided `commandBus`.
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractAggregate.js","sourceRoot":"","sources":["../../src/AbstractAggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractAggregate.js","sourceRoot":"","sources":["../../src/AbstractAggregate.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,15 @@ function normalizeRetryResolver(value) {
7
7
  return value;
8
8
  if (value === false)
9
9
  return () => false;
10
+ if (value === 'ignore')
11
+ return () => 'ignore';
10
12
  if (typeof value === 'number')
11
- return (err, attempt) => err instanceof ConcurrencyError && attempt < value;
13
+ return (err, events, attempt) => err instanceof ConcurrencyError && attempt < value;
12
14
  if (isObject(value)) {
13
15
  const { maxRetries = DEFAULT_MAX_RETRY_ATTEMPTS, ignoreAfterMaxRetries = false } = value;
14
16
  assertNonNegativeInteger(maxRetries, 'retryOnConcurrencyError.maxRetries');
15
17
  assertBoolean(ignoreAfterMaxRetries, 'retryOnConcurrencyError.ignoreAfterMaxRetries');
16
- return (err, attempt) => {
18
+ return (err, events, attempt) => {
17
19
  if (!(err instanceof ConcurrencyError))
18
20
  return false;
19
21
  if (attempt < maxRetries)
@@ -22,7 +24,7 @@ function normalizeRetryResolver(value) {
22
24
  };
23
25
  }
24
26
  // undefined or true — default behavior
25
- return (err, attempt) => err instanceof ConcurrencyError && attempt < DEFAULT_MAX_RETRY_ATTEMPTS;
27
+ return (err, events, attempt) => err instanceof ConcurrencyError && attempt < DEFAULT_MAX_RETRY_ATTEMPTS;
26
28
  }
27
29
  /**
28
30
  * Aggregate command handler.
@@ -113,7 +115,7 @@ export class AggregateCommandHandler {
113
115
  try {
114
116
  for (let attempt = 0;; attempt++) {
115
117
  if (attempt > 0)
116
- this.#logger?.info(`retrying "${cmd.type}" command on aggregate ${aggregateId}, attempt ${attempt + 1}`);
118
+ this.#logger?.warn(`retrying "${cmd.type}" command on aggregate ${aggregateId}, attempt ${attempt + 1}`);
117
119
  // Read the current cache entry after acquiring the lock. On the first attempt
118
120
  // this is the pre-warmed (possibly shared) instance; on retries it is the
119
121
  // fresh instance placed into the cache by the error handler below.
@@ -134,11 +136,11 @@ export class AggregateCommandHandler {
134
136
  // queued on the lock start from a clean state.
135
137
  if (aggregateId)
136
138
  this.#aggregatesCache.set(aggregateId, this.#restoreAggregate(aggregateId));
137
- const retryDecision = this.#shouldRetry(err, attempt);
139
+ const retryDecision = this.#shouldRetry(err, events, attempt);
138
140
  if (!retryDecision)
139
141
  throw err;
140
142
  if (retryDecision === 'ignore' && events?.length) {
141
- this.#logger?.info(`"${cmd.type}" concurrency error ignored after ${attempt + 1} attempt(s), force-dispatching`);
143
+ this.#logger?.warn(`"${cmd.type}" concurrency error ignored after ${attempt + 1} attempt(s), force-dispatching`);
142
144
  await this.#eventStore.dispatch(events, { ignoreConcurrencyError: true });
143
145
  return events;
144
146
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AggregateCommandHandler.js","sourceRoot":"","sources":["../../src/AggregateCommandHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AggregateCommandHandler.js","sourceRoot":"","sources":["../../src/AggregateCommandHandler.ts"],"names":[],"mappings":"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"}
@@ -69,7 +69,10 @@ export class CqrsContainerBuilder extends ContainerBuilder {
69
69
  const commandHandlerFactory = (container) => container.createInstance(AggregateCommandHandler, {
70
70
  aggregateFactory: (options) => container.createInstance(AggregateType, options),
71
71
  handles: AggregateType.handles,
72
- restoresFrom: AggregateType.restoresFrom
72
+ restoresFrom: AggregateType.restoresFrom,
73
+ ...AggregateType.retryOnConcurrencyError !== undefined && {
74
+ retryOnConcurrencyError: AggregateType.retryOnConcurrencyError
75
+ }
73
76
  });
74
77
  return this.registerCommandHandler(commandHandlerFactory);
75
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CqrsContainerBuilder.js","sourceRoot":"","sources":["../../src/CqrsContainerBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CqrsContainerBuilder.js","sourceRoot":"","sources":["../../src/CqrsContainerBuilder.ts"],"names":[],"mappings":"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"}
@@ -92,8 +92,7 @@ export class InMemoryEventStorage {
92
92
  throw new Error('Event batch does not contain `event`');
93
93
  events.push(event);
94
94
  }
95
- const ignoreConcurrencyError = batch.some(item => item.ignoreConcurrencyError === true);
96
- if (ignoreConcurrencyError)
95
+ if (batch.at(0)?.ignoreConcurrencyError)
97
96
  await this.commitEvents(events, { ignoreConcurrencyError: true });
98
97
  else
99
98
  await this.commitEvents(events);
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryEventStorage.js","sourceRoot":"","sources":["../../../src/in-memory/InMemoryEventStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InMemoryEventStorage.js","sourceRoot":"","sources":["../../../src/in-memory/InMemoryEventStorage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IDispatchPipelineProcessor.js","sourceRoot":"","sources":["../../../src/interfaces/IDispatchPipelineProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AA8BzC,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,GAAY,EAAqC,EAAE,CAC9F,QAAQ,CAAC,GAAG,CAAC;OACV,SAAS,IAAI,GAAG;OAChB,OAAQ,GAAkC,CAAC,OAAO,KAAK,UAAU,CAAC"}
1
+ {"version":3,"file":"IDispatchPipelineProcessor.js","sourceRoot":"","sources":["../../../src/interfaces/IDispatchPipelineProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAmCzC,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,GAAY,EAAqC,EAAE,CAC9F,QAAQ,CAAC,GAAG,CAAC;OACV,SAAS,IAAI,GAAG;OAChB,OAAQ,GAAkC,CAAC,OAAO,KAAK,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"IEventStorageWriter.js","sourceRoot":"","sources":["../../../src/interfaces/IEventStorageWriter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAezC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAY,EAA8B,EAAE,CAChF,QAAQ,CAAC,GAAG,CAAC;OACV,cAAc,IAAI,GAAG;OACrB,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,CAAC"}
1
+ {"version":3,"file":"IEventStorageWriter.js","sourceRoot":"","sources":["../../../src/interfaces/IEventStorageWriter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAWzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAY,EAA8B,EAAE,CAChF,QAAQ,CAAC,GAAG,CAAC;OACV,cAAc,IAAI,GAAG;OACrB,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-cqrs",
3
- "version": "1.0.0-rc.39",
3
+ "version": "1.0.0-rc.40",
4
4
  "description": "Infrastructure-agnostic building blocks for CQRS/ES",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -84,7 +84,7 @@
84
84
  "dependencies": {
85
85
  "async-iterable-buffer": "^1.1.0",
86
86
  "async-parallel-pipe": "^1.0.2",
87
- "di0": "^1.3.0-4"
87
+ "di0": "^1.3.0-5"
88
88
  },
89
89
  "devDependencies": {
90
90
  "@types/amqplib": "^0.10.8",
@@ -11,6 +11,7 @@ import {
11
11
  type IAggregateConstructor,
12
12
  type IEventStore,
13
13
  type ICommandBus,
14
+ type RetryOnConcurrencyErrorOptions,
14
15
  SNAPSHOT_EVENT_TYPE
15
16
  } from './interfaces/index.ts';
16
17
 
@@ -47,6 +48,24 @@ export abstract class AbstractAggregate<TState extends IMutableState | object |
47
48
  return getMessageHandlerNames(this);
48
49
  }
49
50
 
51
+ /**
52
+ * Optional list of event types that are required to restore the aggregate state.
53
+ *
54
+ * @see IAggregateConstructor
55
+ */
56
+ static get restoresFrom(): Readonly<string[]> | undefined {
57
+ return undefined;
58
+ }
59
+
60
+ /**
61
+ * Defines retry behavior when a ConcurrencyError is thrown during event dispatch.
62
+ *
63
+ * @see IAggregateConstructor
64
+ */
65
+ static get retryOnConcurrencyError(): RetryOnConcurrencyErrorOptions | undefined {
66
+ return undefined;
67
+ }
68
+
50
69
  /**
51
70
  * Convenience helper to create an `AggregateCommandHandler` for this aggregate type and
52
71
  * subscribe it to the provided `commandBus`.
@@ -17,30 +17,30 @@ import type {
17
17
  ILocker,
18
18
  ILogger,
19
19
  IObservable,
20
- RetryOnConcurrencyErrorConfig,
21
20
  RetryOnConcurrencyErrorDecision,
21
+ RetryOnConcurrencyErrorOptions,
22
22
  RetryOnConcurrencyErrorResolver
23
23
  } from './interfaces/index.ts';
24
24
  import { isObject } from './interfaces/isObject.ts';
25
25
 
26
26
  const DEFAULT_MAX_RETRY_ATTEMPTS = 5;
27
27
 
28
- function normalizeRetryResolver(
29
- value: boolean | number | RetryOnConcurrencyErrorConfig | RetryOnConcurrencyErrorResolver | undefined
30
- ): RetryOnConcurrencyErrorResolver {
28
+ function normalizeRetryResolver(value?: RetryOnConcurrencyErrorOptions): RetryOnConcurrencyErrorResolver {
31
29
  if (typeof value === 'function')
32
30
  return value;
33
31
  if (value === false)
34
32
  return () => false;
33
+ if (value === 'ignore')
34
+ return () => 'ignore';
35
35
  if (typeof value === 'number')
36
- return (err, attempt) => err instanceof ConcurrencyError && attempt < value;
36
+ return (err, events, attempt) => err instanceof ConcurrencyError && attempt < value;
37
37
 
38
38
  if (isObject(value)) {
39
39
  const { maxRetries = DEFAULT_MAX_RETRY_ATTEMPTS, ignoreAfterMaxRetries = false } = value;
40
40
  assertNonNegativeInteger(maxRetries, 'retryOnConcurrencyError.maxRetries');
41
41
  assertBoolean(ignoreAfterMaxRetries, 'retryOnConcurrencyError.ignoreAfterMaxRetries');
42
42
 
43
- return (err, attempt): RetryOnConcurrencyErrorDecision => {
43
+ return (err, events, attempt): RetryOnConcurrencyErrorDecision => {
44
44
  if (!(err instanceof ConcurrencyError))
45
45
  return false;
46
46
 
@@ -52,7 +52,8 @@ function normalizeRetryResolver(
52
52
  }
53
53
 
54
54
  // undefined or true — default behavior
55
- return (err, attempt) => err instanceof ConcurrencyError && attempt < DEFAULT_MAX_RETRY_ATTEMPTS;
55
+ return (err, events, attempt) =>
56
+ err instanceof ConcurrencyError && attempt < DEFAULT_MAX_RETRY_ATTEMPTS;
56
57
  }
57
58
 
58
59
  /**
@@ -91,7 +92,7 @@ export class AggregateCommandHandler<TAggregate extends IAggregate> implements I
91
92
  aggregateFactory?: IAggregateFactory<TAggregate, any>,
92
93
  handles?: Readonly<string[]>,
93
94
  restoresFrom?: Readonly<string[]>,
94
- retryOnConcurrencyError?: boolean | number | RetryOnConcurrencyErrorConfig | RetryOnConcurrencyErrorResolver
95
+ retryOnConcurrencyError?: RetryOnConcurrencyErrorOptions
95
96
  }) {
96
97
  assertDefined(eventStore, 'eventStore');
97
98
 
@@ -182,7 +183,7 @@ export class AggregateCommandHandler<TAggregate extends IAggregate> implements I
182
183
  try {
183
184
  for (let attempt = 0; ; attempt++) {
184
185
  if (attempt > 0)
185
- this.#logger?.info(`retrying "${cmd.type}" command on aggregate ${aggregateId}, attempt ${attempt + 1}`);
186
+ this.#logger?.warn(`retrying "${cmd.type}" command on aggregate ${aggregateId}, attempt ${attempt + 1}`);
186
187
 
187
188
  // Read the current cache entry after acquiring the lock. On the first attempt
188
189
  // this is the pre-warmed (possibly shared) instance; on retries it is the
@@ -209,12 +210,12 @@ export class AggregateCommandHandler<TAggregate extends IAggregate> implements I
209
210
  if (aggregateId)
210
211
  this.#aggregatesCache.set(aggregateId, this.#restoreAggregate(aggregateId));
211
212
 
212
- const retryDecision = this.#shouldRetry(err, attempt);
213
+ const retryDecision = this.#shouldRetry(err, events, attempt);
213
214
  if (!retryDecision)
214
215
  throw err;
215
216
 
216
217
  if (retryDecision === 'ignore' && events?.length) {
217
- this.#logger?.info(`"${cmd.type}" concurrency error ignored after ${attempt + 1} attempt(s), force-dispatching`);
218
+ this.#logger?.warn(`"${cmd.type}" concurrency error ignored after ${attempt + 1} attempt(s), force-dispatching`);
218
219
  await this.#eventStore.dispatch(events, { ignoreConcurrencyError: true });
219
220
  return events;
220
221
  }
@@ -110,7 +110,10 @@ export class CqrsContainerBuilder<TContainerInterface extends IContainer = ICont
110
110
  aggregateFactory: (options: any) =>
111
111
  container.createInstance(AggregateType, options),
112
112
  handles: AggregateType.handles,
113
- restoresFrom: AggregateType.restoresFrom
113
+ restoresFrom: AggregateType.restoresFrom,
114
+ ...AggregateType.retryOnConcurrencyError !== undefined && {
115
+ retryOnConcurrencyError: AggregateType.retryOnConcurrencyError
116
+ }
114
117
  });
115
118
 
116
119
  return this.registerCommandHandler(commandHandlerFactory);
@@ -1,5 +1,4 @@
1
1
  import type {
2
- CommitEventsOptions,
3
2
  IIdentifierProvider,
4
3
  IEvent,
5
4
  IEventSet,
@@ -9,7 +8,6 @@ import type {
9
8
  IEventStorageWriter,
10
9
  Identifier,
11
10
  IDispatchPipelineProcessor,
12
- DispatchPipelineEnvelope,
13
11
  DispatchPipelineBatch,
14
12
  AggregateEventsQueryParams
15
13
  } from '../interfaces/index.ts';
@@ -35,7 +33,7 @@ export class InMemoryEventStorage implements
35
33
  return String(this.#nextId);
36
34
  }
37
35
 
38
- async commitEvents(events: IEventSet, options?: CommitEventsOptions): Promise<IEventSet> {
36
+ async commitEvents(events: IEventSet, options?: { ignoreConcurrencyError?: boolean }): Promise<IEventSet> {
39
37
  await nextCycle();
40
38
 
41
39
  if (!options?.ignoreConcurrencyError) {
@@ -132,8 +130,7 @@ export class InMemoryEventStorage implements
132
130
  *
133
131
  * This method is part of the `IDispatchPipelineProcessor` interface.
134
132
  */
135
- async process(batch: DispatchPipelineBatch<DispatchPipelineEnvelope & { ignoreConcurrencyError?: boolean }>):
136
- Promise<DispatchPipelineBatch> {
133
+ async process(batch: DispatchPipelineBatch): Promise<DispatchPipelineBatch> {
137
134
  const events: IEvent[] = [];
138
135
  for (const { event } of batch) {
139
136
  if (!event)
@@ -142,8 +139,7 @@ export class InMemoryEventStorage implements
142
139
  events.push(event);
143
140
  }
144
141
 
145
- const ignoreConcurrencyError = batch.some(item => item.ignoreConcurrencyError === true);
146
- if (ignoreConcurrencyError)
142
+ if (batch.at(0)?.ignoreConcurrencyError)
147
143
  await this.commitEvents(events, { ignoreConcurrencyError: true });
148
144
  else
149
145
  await this.commitEvents(events);
@@ -50,13 +50,19 @@ export type IAggregateConstructorParams<TState extends IMutableState | object |
50
50
  export type RetryOnConcurrencyErrorDecision = boolean | 'ignore';
51
51
 
52
52
  export type RetryOnConcurrencyErrorResolver =
53
- (err: unknown, attempt: number) => RetryOnConcurrencyErrorDecision;
53
+ (err: unknown, events: IEventSet | undefined, attempt: number) => RetryOnConcurrencyErrorDecision;
54
54
 
55
55
  export type RetryOnConcurrencyErrorConfig = {
56
56
  maxRetries?: number;
57
57
  ignoreAfterMaxRetries?: boolean;
58
58
  };
59
59
 
60
+ export type RetryOnConcurrencyErrorOptions =
61
+ RetryOnConcurrencyErrorDecision |
62
+ RetryOnConcurrencyErrorConfig |
63
+ RetryOnConcurrencyErrorResolver |
64
+ number;
65
+
60
66
  export interface IAggregateConstructor<
61
67
  TAggregate extends IAggregate,
62
68
  TState extends IMutableState | object | void
@@ -83,17 +89,12 @@ export interface IAggregateConstructor<
83
89
  * - `undefined` (default): retry up to 5 times on ConcurrencyError
84
90
  * - `false`: no retry
85
91
  * - `true`: retry up to 5 times on ConcurrencyError
86
- * - `number`: retry up to the specified number of times
87
- * - `RetryOnConcurrencyErrorConfig`: configure retries (`maxRetries` must be a non-negative integer)
88
- * and optional ignore on exhaustion
92
+ * - `number`: retry up to the specified number of times on ConcurrencyError
93
+ * - `{ maxRetries?: number, ignoreAfterMaxRetries?: boolean }`: configure retries
89
94
  * - `(err, attempt) => RetryOnConcurrencyErrorDecision`:
90
95
  * custom function to decide whether to retry (`true`), stop (`false`) or ignore (`'ignore'`)
91
96
  */
92
- readonly retryOnConcurrencyError?:
93
- | boolean
94
- | number
95
- | RetryOnConcurrencyErrorConfig
96
- | RetryOnConcurrencyErrorResolver;
97
+ readonly retryOnConcurrencyError?: RetryOnConcurrencyErrorOptions;
97
98
 
98
99
  new(options: IAggregateConstructorParams<TState>): TAggregate;
99
100
  }
@@ -12,6 +12,11 @@ export type DispatchPipelineEnvelope = {
12
12
  */
13
13
  origin?: string;
14
14
 
15
+ /**
16
+ * When true, storage writers may bypass optimistic-concurrency checks for this batch.
17
+ */
18
+ ignoreConcurrencyError?: boolean;
19
+
15
20
  event?: IEvent;
16
21
  }
17
22
 
@@ -1,17 +1,13 @@
1
1
  import type { IEventSet } from './IEventSet.ts';
2
2
  import { isObject } from './isObject.ts';
3
3
 
4
- export type CommitEventsOptions = {
5
- ignoreConcurrencyError?: boolean;
6
- };
7
-
8
4
  export interface IEventStorageWriter {
9
5
 
10
6
  /**
11
7
  * Persists a set of events to the event store.
12
8
  * Returns the persisted event set (potentially enriched or normalized).
13
9
  */
14
- commitEvents(events: IEventSet, options?: CommitEventsOptions): Promise<IEventSet>;
10
+ commitEvents(events: IEventSet): Promise<IEventSet>;
15
11
  }
16
12
 
17
13
  export const isEventStorageWriter = (obj: unknown): obj is IEventStorageWriter =>
@@ -1,5 +1,5 @@
1
1
  import { AggregateCommandHandler } from './AggregateCommandHandler.ts';
2
- import { type IAggregate, type IMutableState, type ICommand, type Identifier, type IEvent, type IEventSet, type IAggregateConstructorParams, type ISnapshotEvent, type IAggregateConstructor, type IEventStore, type ICommandBus } from './interfaces/index.ts';
2
+ import { type IAggregate, type IMutableState, type ICommand, type Identifier, type IEvent, type IEventSet, type IAggregateConstructorParams, type ISnapshotEvent, type IAggregateConstructor, type IEventStore, type ICommandBus, type RetryOnConcurrencyErrorOptions } from './interfaces/index.ts';
3
3
  /**
4
4
  * Base class for Aggregate definition
5
5
  */
@@ -14,6 +14,18 @@ export declare abstract class AbstractAggregate<TState extends IMutableState | o
14
14
  * @example ['createUser', 'changePassword'];
15
15
  */
16
16
  static get handles(): string[];
17
+ /**
18
+ * Optional list of event types that are required to restore the aggregate state.
19
+ *
20
+ * @see IAggregateConstructor
21
+ */
22
+ static get restoresFrom(): Readonly<string[]> | undefined;
23
+ /**
24
+ * Defines retry behavior when a ConcurrencyError is thrown during event dispatch.
25
+ *
26
+ * @see IAggregateConstructor
27
+ */
28
+ static get retryOnConcurrencyError(): RetryOnConcurrencyErrorOptions | undefined;
17
29
  /**
18
30
  * Convenience helper to create an `AggregateCommandHandler` for this aggregate type and
19
31
  * subscribe it to the provided `commandBus`.
@@ -1,4 +1,4 @@
1
- import type { IAggregate, IAggregateConstructor, IAggregateFactory, ICommand, ICommandHandler, IContainer, IEventSet, IObservable, RetryOnConcurrencyErrorConfig, RetryOnConcurrencyErrorResolver } from './interfaces/index.ts';
1
+ import type { IAggregate, IAggregateConstructor, IAggregateFactory, ICommand, ICommandHandler, IContainer, IEventSet, IObservable, RetryOnConcurrencyErrorOptions } from './interfaces/index.ts';
2
2
  /**
3
3
  * Aggregate command handler.
4
4
  *
@@ -13,7 +13,7 @@ export declare class AggregateCommandHandler<TAggregate extends IAggregate> impl
13
13
  aggregateFactory?: IAggregateFactory<TAggregate, any>;
14
14
  handles?: Readonly<string[]>;
15
15
  restoresFrom?: Readonly<string[]>;
16
- retryOnConcurrencyError?: boolean | number | RetryOnConcurrencyErrorConfig | RetryOnConcurrencyErrorResolver;
16
+ retryOnConcurrencyError?: RetryOnConcurrencyErrorOptions;
17
17
  });
18
18
  /** Subscribe to all command types handled by aggregateType */
19
19
  subscribe(commandBus: IObservable): void;
@@ -1,4 +1,4 @@
1
- import type { CommitEventsOptions, IIdentifierProvider, IEvent, IEventSet, EventQueryAfter, IEventStorageReader, IEventStream, IEventStorageWriter, Identifier, IDispatchPipelineProcessor, DispatchPipelineEnvelope, DispatchPipelineBatch, AggregateEventsQueryParams } from '../interfaces/index.ts';
1
+ import type { IIdentifierProvider, IEvent, IEventSet, EventQueryAfter, IEventStorageReader, IEventStream, IEventStorageWriter, Identifier, IDispatchPipelineProcessor, DispatchPipelineBatch, AggregateEventsQueryParams } from '../interfaces/index.ts';
2
2
  /**
3
3
  * A simple event storage implementation intended to use for tests only.
4
4
  * Storage content resets on each app restart.
@@ -6,7 +6,9 @@ import type { CommitEventsOptions, IIdentifierProvider, IEvent, IEventSet, Event
6
6
  export declare class InMemoryEventStorage implements IEventStorageReader, IEventStorageWriter, IIdentifierProvider, IDispatchPipelineProcessor {
7
7
  #private;
8
8
  getNewId(): string;
9
- commitEvents(events: IEventSet, options?: CommitEventsOptions): Promise<IEventSet>;
9
+ commitEvents(events: IEventSet, options?: {
10
+ ignoreConcurrencyError?: boolean;
11
+ }): Promise<IEventSet>;
10
12
  getAggregateEvents(aggregateId: Identifier, options?: AggregateEventsQueryParams): IEventStream;
11
13
  getSagaEvents(sagaId: Identifier, { beforeEvent }: {
12
14
  beforeEvent: IEvent;
@@ -18,7 +20,5 @@ export declare class InMemoryEventStorage implements IEventStorageReader, IEvent
18
20
  *
19
21
  * This method is part of the `IDispatchPipelineProcessor` interface.
20
22
  */
21
- process(batch: DispatchPipelineBatch<DispatchPipelineEnvelope & {
22
- ignoreConcurrencyError?: boolean;
23
- }>): Promise<DispatchPipelineBatch>;
23
+ process(batch: DispatchPipelineBatch): Promise<DispatchPipelineBatch>;
24
24
  }
@@ -40,11 +40,12 @@ export type IAggregateConstructorParams<TState extends IMutableState | object |
40
40
  state?: TState;
41
41
  };
42
42
  export type RetryOnConcurrencyErrorDecision = boolean | 'ignore';
43
- export type RetryOnConcurrencyErrorResolver = (err: unknown, attempt: number) => RetryOnConcurrencyErrorDecision;
43
+ export type RetryOnConcurrencyErrorResolver = (err: unknown, events: IEventSet | undefined, attempt: number) => RetryOnConcurrencyErrorDecision;
44
44
  export type RetryOnConcurrencyErrorConfig = {
45
45
  maxRetries?: number;
46
46
  ignoreAfterMaxRetries?: boolean;
47
47
  };
48
+ export type RetryOnConcurrencyErrorOptions = RetryOnConcurrencyErrorDecision | RetryOnConcurrencyErrorConfig | RetryOnConcurrencyErrorResolver | number;
48
49
  export interface IAggregateConstructor<TAggregate extends IAggregate, TState extends IMutableState | object | void> {
49
50
  /**
50
51
  * List of command types handled by the aggregate.
@@ -65,13 +66,12 @@ export interface IAggregateConstructor<TAggregate extends IAggregate, TState ext
65
66
  * - `undefined` (default): retry up to 5 times on ConcurrencyError
66
67
  * - `false`: no retry
67
68
  * - `true`: retry up to 5 times on ConcurrencyError
68
- * - `number`: retry up to the specified number of times
69
- * - `RetryOnConcurrencyErrorConfig`: configure retries (`maxRetries` must be a non-negative integer)
70
- * and optional ignore on exhaustion
69
+ * - `number`: retry up to the specified number of times on ConcurrencyError
70
+ * - `{ maxRetries?: number, ignoreAfterMaxRetries?: boolean }`: configure retries
71
71
  * - `(err, attempt) => RetryOnConcurrencyErrorDecision`:
72
72
  * custom function to decide whether to retry (`true`), stop (`false`) or ignore (`'ignore'`)
73
73
  */
74
- readonly retryOnConcurrencyError?: boolean | number | RetryOnConcurrencyErrorConfig | RetryOnConcurrencyErrorResolver;
74
+ readonly retryOnConcurrencyError?: RetryOnConcurrencyErrorOptions;
75
75
  new (options: IAggregateConstructorParams<TState>): TAggregate;
76
76
  }
77
77
  export type IAggregateFactory<TAggregate extends IAggregate, TState extends IMutableState | object | void> = (options: IAggregateConstructorParams<TState>) => TAggregate;
@@ -8,6 +8,10 @@ export type DispatchPipelineEnvelope = {
8
8
  * Origin of the event. Can be used to distinguish between events coming from different sources.
9
9
  */
10
10
  origin?: string;
11
+ /**
12
+ * When true, storage writers may bypass optimistic-concurrency checks for this batch.
13
+ */
14
+ ignoreConcurrencyError?: boolean;
11
15
  event?: IEvent;
12
16
  };
13
17
  /**
@@ -1,12 +1,9 @@
1
1
  import type { IEventSet } from './IEventSet.ts';
2
- export type CommitEventsOptions = {
3
- ignoreConcurrencyError?: boolean;
4
- };
5
2
  export interface IEventStorageWriter {
6
3
  /**
7
4
  * Persists a set of events to the event store.
8
5
  * Returns the persisted event set (potentially enriched or normalized).
9
6
  */
10
- commitEvents(events: IEventSet, options?: CommitEventsOptions): Promise<IEventSet>;
7
+ commitEvents(events: IEventSet): Promise<IEventSet>;
11
8
  }
12
9
  export declare const isEventStorageWriter: (obj: unknown) => obj is IEventStorageWriter;