@nimbus-cqrs/eventsourcingdb 2.3.0 → 2.5.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventObserver.d.ts","sourceRoot":"","sources":["../../src/lib/eventObserver.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,IAAI,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAarE,KAAK,KAAK,GAAG;IACT,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC;CACnC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAOF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC;;;;;OAKG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpE;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,YAAY,CAAC;IACtC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,CACb,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,oBAAoB,KAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7B,CAAC;
|
|
1
|
+
{"version":3,"file":"eventObserver.d.ts","sourceRoot":"","sources":["../../src/lib/eventObserver.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,IAAI,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAarE,KAAK,KAAK,GAAG;IACT,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC;CACnC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,iBAAiB,GAAG,gBAAgB,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAOF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC;;;;;OAKG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpE;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,YAAY,CAAC;IACtC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,YAAY,CAAC;IACnC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,CACb,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,oBAAoB,KAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7B,CAAC;AAaF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,GAC9B,gBAAgB,MAAM,EACtB,SAAS,MAAM,KAChB,MAKE,CAAC;AA4PN;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,gBAAgB,GACzB,eAAe,aAAa,KAC7B,OAAO,CAAC,IAAI,CAiGd,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,eAAe,aAAa,KAAG,IAEhE,CAAC"}
|
package/esm/lib/eventObserver.js
CHANGED
|
@@ -11,6 +11,10 @@ const DEFAULT_RETRY_OPTIONS = {
|
|
|
11
11
|
* Returns a promise that resolves after the given number of milliseconds.
|
|
12
12
|
*/
|
|
13
13
|
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
14
|
+
const OBSERVER_BACKOFF_OPTIONS = {
|
|
15
|
+
jitterFactor: 0.3,
|
|
16
|
+
maxDelayMs: Infinity,
|
|
17
|
+
};
|
|
14
18
|
/**
|
|
15
19
|
* Calculates an exponential backoff delay with jitter for a given
|
|
16
20
|
* retry attempt. The jitter adds up to 30% of the base delay to
|
|
@@ -25,23 +29,27 @@ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
|
25
29
|
* `@nimbus-cqrs/core` instead. This wrapper keeps the historical
|
|
26
30
|
* 30% jitter default used by EventSourcingDB observers.
|
|
27
31
|
*/
|
|
28
|
-
export const calculateBackoffDelay = (initialDelayMs, attempt) => coreCalculateBackoffDelay(initialDelayMs, attempt,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
export const calculateBackoffDelay = (initialDelayMs, attempt) => coreCalculateBackoffDelay(initialDelayMs, attempt, OBSERVER_BACKOFF_OPTIONS);
|
|
33
|
+
/**
|
|
34
|
+
* Reads the legacy connection-retry alias accepted on an event observer.
|
|
35
|
+
*/
|
|
36
|
+
const readLegacyRetryOptions = (eventObserver) => eventObserver.retryOptions;
|
|
32
37
|
/**
|
|
33
38
|
* Resolves connection retry options, preferring
|
|
34
|
-
* {@link EventObserver.connectionRetryOptions}
|
|
35
|
-
*
|
|
39
|
+
* {@link EventObserver.connectionRetryOptions} and falling back to the
|
|
40
|
+
* legacy retryOptions alias.
|
|
36
41
|
*/
|
|
37
|
-
const resolveConnectionRetryOptions = (eventObserver) =>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
const resolveConnectionRetryOptions = (eventObserver) => {
|
|
43
|
+
const legacyRetryOptions = readLegacyRetryOptions(eventObserver);
|
|
44
|
+
return {
|
|
45
|
+
maxRetries: eventObserver.connectionRetryOptions?.maxRetries ??
|
|
46
|
+
legacyRetryOptions?.maxRetries ??
|
|
47
|
+
DEFAULT_RETRY_OPTIONS.maxRetries,
|
|
48
|
+
initialRetryDelayMs: eventObserver.connectionRetryOptions?.initialRetryDelayMs ??
|
|
49
|
+
legacyRetryOptions?.initialRetryDelayMs ??
|
|
50
|
+
DEFAULT_RETRY_OPTIONS.initialRetryDelayMs,
|
|
51
|
+
};
|
|
52
|
+
};
|
|
45
53
|
/**
|
|
46
54
|
* Resolves handler retry options from {@link EventObserver.handlerRetryOptions}.
|
|
47
55
|
*/
|
|
@@ -92,7 +100,7 @@ const handleConnectionError = async (error, subject, retryCount, maxRetries, ini
|
|
|
92
100
|
return false;
|
|
93
101
|
}
|
|
94
102
|
observerConnectionRetryAttemptsCounter.add(1, { subject });
|
|
95
|
-
const backoffDelay =
|
|
103
|
+
const backoffDelay = coreCalculateBackoffDelay(initialRetryDelayMs, retryCount - 1, OBSERVER_BACKOFF_OPTIONS);
|
|
96
104
|
getLogger().error({
|
|
97
105
|
category: 'Nimbus',
|
|
98
106
|
message: `Error observing events for subject "${subject}" (retry ${retryCount}/${maxRetries}), retrying in ${backoffDelay}ms`,
|
|
@@ -287,5 +295,5 @@ export const observeWithRetry = async (eventObserver) => {
|
|
|
287
295
|
* @param eventObserver - The event observer configuration.
|
|
288
296
|
*/
|
|
289
297
|
export const initEventObserver = (eventObserver) => {
|
|
290
|
-
observeWithRetry(eventObserver);
|
|
298
|
+
void observeWithRetry(eventObserver);
|
|
291
299
|
};
|
package/esm/lib/tracing.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export declare const tracer: import("@opentelemetry/api").Tracer;
|
|
|
3
3
|
export declare const DB_SYSTEM = "eventsourcingdb";
|
|
4
4
|
/**
|
|
5
5
|
* Histogram of serialized Nimbus event sizes written via writeEvents.
|
|
6
|
+
*
|
|
7
|
+
* Recorded without attributes so the series count does not grow with
|
|
8
|
+
* streams or event types.
|
|
6
9
|
*/
|
|
7
10
|
export declare const eventSizeBytes: import("@opentelemetry/api").Histogram<import("@opentelemetry/api").Attributes>;
|
|
8
11
|
/**
|
package/esm/lib/tracing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/lib/tracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,IAAI,EAIZ,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,MAAM,qCAA4B,CAAC;AAEhD,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAmB3C
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/lib/tracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,IAAI,EAIZ,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,MAAM,qCAA4B,CAAC;AAEhD,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAmB3C;;;;;GAKG;AACH,eAAO,MAAM,cAAc,iFAM1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,+EAMxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,iFAOpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mCAAmC,+EAM/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sCAAsC,+EAMlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mCAAmC,+EAM/C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EACtB,WAAW,MAAM,EACjB,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,eAAe,YAAY,KAC5B,OAAO,CAAC,CAAC,CA6DX,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAClC,OAAO;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACpD,iBAAiB,MAAM,EACvB,cAAc,YAAY,GAAG,SAAS,EACtC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAC/B,OAAO,CAAC,CAAC,CA8BX,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAuB,sBAAsB,CAAC,CAAC,EAC3C,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GACxC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CA0C/B"}
|
package/esm/lib/tracing.js
CHANGED
|
@@ -11,6 +11,9 @@ const operationDuration = meter.createHistogram('eventsourcingdb_operation_durat
|
|
|
11
11
|
});
|
|
12
12
|
/**
|
|
13
13
|
* Histogram of serialized Nimbus event sizes written via writeEvents.
|
|
14
|
+
*
|
|
15
|
+
* Recorded without attributes so the series count does not grow with
|
|
16
|
+
* streams or event types.
|
|
14
17
|
*/
|
|
15
18
|
export const eventSizeBytes = meter.createHistogram('eventsourcingdb_event_size_bytes', {
|
|
16
19
|
description: 'Size of events written to EventSourcingDB in bytes',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeEvents.d.ts","sourceRoot":"","sources":["../../src/lib/writeEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qDAAqD,CAAC;AAEjF,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAapE;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACpB,QAAQ,KAAK,EAAE,EACf,gBAAgB,YAAY,EAAE,KAC/B,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"writeEvents.d.ts","sourceRoot":"","sources":["../../src/lib/writeEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qDAAqD,CAAC;AAEjF,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAapE;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACpB,QAAQ,KAAK,EAAE,EACf,gBAAgB,YAAY,EAAE,KAC/B,OAAO,CAAC,IAAI,CAsBd,CAAC"}
|
package/esm/lib/writeEvents.js
CHANGED
|
@@ -20,10 +20,7 @@ export const writeEvents = (events, preconditions) => {
|
|
|
20
20
|
const carrier = {};
|
|
21
21
|
propagation.inject(context.active(), carrier);
|
|
22
22
|
const eventCandidates = events.map((event) => {
|
|
23
|
-
eventSizeBytes.record(getEventSizeBytes(event)
|
|
24
|
-
subject: event.subject,
|
|
25
|
-
event_type: event.type,
|
|
26
|
-
});
|
|
23
|
+
eventSizeBytes.record(getEventSizeBytes(event));
|
|
27
24
|
return nimbusEventToEventSourcingDBEventCandidate(event, carrier['traceparent'], carrier['tracestate']);
|
|
28
25
|
});
|
|
29
26
|
await eventSourcingDBClient.writeEvents(eventCandidates, preconditions);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nimbus-cqrs/eventsourcingdb",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Simplify Event-Driven Applications - EventSourcingDB integration for the Nimbus framework.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nimbus",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@opentelemetry/api": "^1.9.1",
|
|
38
|
-
"eventsourcingdb": "^1.
|
|
38
|
+
"eventsourcingdb": "^1.9.1",
|
|
39
39
|
"zod": "^4.4.3",
|
|
40
|
-
"@nimbus-cqrs/core": "^2.
|
|
40
|
+
"@nimbus-cqrs/core": "^2.5.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "^22.0.0"
|