@kronos-ts/axon-server 0.5.0 → 0.6.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.
- package/dist/axon-server-event-store.d.ts.map +1 -1
- package/dist/axon-server-event-store.js +72 -77
- package/dist/axon-server-event-store.js.map +1 -1
- package/dist/axon-server-snapshotting-event-store.d.ts +3 -3
- package/dist/axon-server-snapshotting-event-store.d.ts.map +1 -1
- package/dist/axon-server-snapshotting-event-store.js +3 -2
- package/dist/axon-server-snapshotting-event-store.js.map +1 -1
- package/dist/axon-server.d.ts +15 -7
- package/dist/axon-server.d.ts.map +1 -1
- package/dist/axon-server.js +444 -270
- package/dist/axon-server.js.map +1 -1
- package/dist/bounded-read.d.ts +19 -0
- package/dist/bounded-read.d.ts.map +1 -0
- package/dist/bounded-read.js +39 -0
- package/dist/bounded-read.js.map +1 -0
- package/dist/connection.d.ts +13 -0
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +78 -40
- package/dist/connection.js.map +1 -1
- package/dist/control-plane.d.ts +9 -19
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +6 -37
- package/dist/control-plane.js.map +1 -1
- package/dist/event-processor-info.d.ts +5 -23
- package/dist/event-processor-info.d.ts.map +1 -1
- package/dist/event-processor-info.js +16 -20
- package/dist/event-processor-info.js.map +1 -1
- package/dist/flow-controlled-sender.d.ts.map +1 -1
- package/dist/flow-controlled-sender.js +37 -17
- package/dist/flow-controlled-sender.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/outbound-stream.d.ts +5 -9
- package/dist/outbound-stream.d.ts.map +1 -1
- package/dist/outbound-stream.js +65 -16
- package/dist/outbound-stream.js.map +1 -1
- package/dist/platform-service.d.ts +10 -1
- package/dist/platform-service.d.ts.map +1 -1
- package/dist/platform-service.js +70 -10
- package/dist/platform-service.js.map +1 -1
- package/dist/shutdown-latch.d.ts +1 -0
- package/dist/shutdown-latch.d.ts.map +1 -1
- package/dist/shutdown-latch.js +20 -1
- package/dist/shutdown-latch.js.map +1 -1
- package/dist/stream-recovery.d.ts +9 -0
- package/dist/stream-recovery.d.ts.map +1 -0
- package/dist/stream-recovery.js +70 -0
- package/dist/stream-recovery.js.map +1 -0
- package/package.json +2 -2
- package/src/axon-server-event-store.ts +77 -79
- package/src/axon-server-snapshotting-event-store.ts +10 -7
- package/src/axon-server.ts +414 -311
- package/src/bounded-read.ts +43 -0
- package/src/connection.ts +77 -45
- package/src/control-plane.ts +19 -63
- package/src/event-processor-info.ts +22 -43
- package/src/flow-controlled-sender.ts +33 -14
- package/src/index.ts +0 -1
- package/src/outbound-stream.ts +57 -27
- package/src/platform-service.ts +75 -11
- package/src/shutdown-latch.ts +14 -1
- package/src/stream-recovery.ts +72 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axon-server-event-store.d.ts","sourceRoot":"","sources":["../src/axon-server-event-store.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,UAAU,EAMX,MAAM,iBAAiB,CAAA;AAIxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"axon-server-event-store.d.ts","sourceRoot":"","sources":["../src/axon-server-event-store.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,UAAU,EAMX,MAAM,iBAAiB,CAAA;AAIxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAwJ5D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CA2N7F"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { qualifiedNameToString, qualifiedNameFromString, } from "@kronos-ts/core";
|
|
2
|
-
import {
|
|
2
|
+
import { compileQuery } from "@kronos-ts/core";
|
|
3
3
|
import { globalSequenceToken, FIRST_TOKEN } from "@kronos-ts/core";
|
|
4
4
|
import { markerAt, noMarker } from "@kronos-ts/core";
|
|
5
5
|
import { contextView } from "./context-view.js";
|
|
6
|
+
import { boundedRead } from "./bounded-read.js";
|
|
6
7
|
// ---------------------------------------------------------------------------
|
|
7
8
|
// Criteria conversion — framework EventCriteria → proto Criterion[]
|
|
8
9
|
// ---------------------------------------------------------------------------
|
|
@@ -129,67 +130,56 @@ function isStartPastHead(err) {
|
|
|
129
130
|
export function axonServerEventStore(conn, context) {
|
|
130
131
|
const { connection, serializer, metadata: createAxonMetadata } = contextView(conn, context);
|
|
131
132
|
const { eventToProto, eventFromProto } = createEventConverters(serializer);
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
133
|
+
async function sourceOnce(condition, signal) {
|
|
134
|
+
const criterions = criteriaToCriterions(compileQuery(condition.query));
|
|
135
|
+
const start = condition.start ?? 0n;
|
|
136
|
+
const request = {
|
|
137
|
+
fromSequence: start,
|
|
138
|
+
criterion: criterions,
|
|
139
|
+
};
|
|
140
|
+
const events = [];
|
|
141
|
+
let marker = noMarker();
|
|
142
|
+
try {
|
|
143
|
+
const stream = connection.eventStore.source(request, { metadata: createAxonMetadata(), signal });
|
|
144
|
+
for await (const response of stream) {
|
|
145
|
+
if (response.event) {
|
|
146
|
+
const taggedEvent = response.event;
|
|
147
|
+
const protoEvent = taggedEvent.event;
|
|
148
|
+
if (protoEvent) {
|
|
149
|
+
// DCB source/stream responses carry no tags — the server indexes
|
|
150
|
+
// them write-side but does not echo them back (SequencedEvent has
|
|
151
|
+
// only sequence + event). Reconstructed events get empty tags.
|
|
152
|
+
events.push(eventFromProto(protoEvent, []));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (response.consistencyMarker !== undefined) {
|
|
156
|
+
marker = markerAt(response.consistencyMarker);
|
|
157
|
+
}
|
|
143
158
|
}
|
|
144
159
|
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
// READING PAST THE HEAD IS AN EMPTY ANSWER, NOT AN ERROR — and Axon
|
|
162
|
+
// Server disagrees, so this is where the two vocabularies are
|
|
163
|
+
// reconciled. `Source` fails OUT_OF_RANGE with "Start sequence cannot
|
|
164
|
+
// be larger than end sequence" whenever `fromSequence` is beyond the
|
|
165
|
+
// global head, which is the ORDINARY STEADY STATE of a snapshotted
|
|
166
|
+
// load: an entry written at the head means the very next read resumes
|
|
167
|
+
// at head + 1 and legitimately finds nothing.
|
|
168
|
+
//
|
|
169
|
+
// The marker is `start - 1`, and it is exact rather than conservative:
|
|
170
|
+
// the caller has already accounted for everything up to there (that is
|
|
171
|
+
// what asking to start later MEANS), and nothing can exist after it or
|
|
172
|
+
// the server would not have refused. So an append conditioned on this
|
|
173
|
+
// read is checked against precisely the range that was read.
|
|
174
|
+
if (!isStartPastHead(err))
|
|
175
|
+
throw err;
|
|
176
|
+
return { events: [], marker: start > 0n ? markerAt(start - 1n) : noMarker() };
|
|
177
|
+
}
|
|
178
|
+
return { events, marker };
|
|
145
179
|
}
|
|
146
180
|
return {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const start = condition.start ?? 0n;
|
|
150
|
-
const request = {
|
|
151
|
-
fromSequence: start,
|
|
152
|
-
criterion: criterions,
|
|
153
|
-
};
|
|
154
|
-
const events = [];
|
|
155
|
-
let marker = noMarker();
|
|
156
|
-
try {
|
|
157
|
-
const stream = connection.eventStore.source(request, { metadata: createAxonMetadata() });
|
|
158
|
-
for await (const response of stream) {
|
|
159
|
-
if (response.event) {
|
|
160
|
-
const taggedEvent = response.event;
|
|
161
|
-
const protoEvent = taggedEvent.event;
|
|
162
|
-
if (protoEvent) {
|
|
163
|
-
// DCB source/stream responses carry no tags — the server indexes
|
|
164
|
-
// them write-side but does not echo them back (SequencedEvent has
|
|
165
|
-
// only sequence + event). Reconstructed events get empty tags.
|
|
166
|
-
events.push(eventFromProto(protoEvent, []));
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (response.consistencyMarker !== undefined) {
|
|
170
|
-
marker = markerAt(response.consistencyMarker);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
catch (err) {
|
|
175
|
-
// READING PAST THE HEAD IS AN EMPTY ANSWER, NOT AN ERROR — and Axon
|
|
176
|
-
// Server disagrees, so this is where the two vocabularies are
|
|
177
|
-
// reconciled. `Source` fails OUT_OF_RANGE with "Start sequence cannot
|
|
178
|
-
// be larger than end sequence" whenever `fromSequence` is beyond the
|
|
179
|
-
// global head, which is the ORDINARY STEADY STATE of a snapshotted
|
|
180
|
-
// load: an entry written at the head means the very next read resumes
|
|
181
|
-
// at head + 1 and legitimately finds nothing.
|
|
182
|
-
//
|
|
183
|
-
// The marker is `start - 1`, and it is exact rather than conservative:
|
|
184
|
-
// the caller has already accounted for everything up to there (that is
|
|
185
|
-
// what asking to start later MEANS), and nothing can exist after it or
|
|
186
|
-
// the server would not have refused. So an append conditioned on this
|
|
187
|
-
// read is checked against precisely the range that was read.
|
|
188
|
-
if (!isStartPastHead(err))
|
|
189
|
-
throw err;
|
|
190
|
-
return { events: [], marker: start > 0n ? markerAt(start - 1n) : noMarker() };
|
|
191
|
-
}
|
|
192
|
-
return { events, marker };
|
|
181
|
+
source(condition) {
|
|
182
|
+
return boundedRead(connection.config.readTimeoutMs, (signal) => sourceOnce(condition, signal));
|
|
193
183
|
},
|
|
194
184
|
async appendEvents(newEvents, condition) {
|
|
195
185
|
const taggedEvents = newEvents.map(eventToProto);
|
|
@@ -214,7 +204,6 @@ export function axonServerEventStore(conn, context) {
|
|
|
214
204
|
metadata: createAxonMetadata(),
|
|
215
205
|
});
|
|
216
206
|
responseMarker = response.consistencyMarker;
|
|
217
|
-
await notifySubscribers(newEvents);
|
|
218
207
|
},
|
|
219
208
|
async afterCommit() {
|
|
220
209
|
return markerAt(responseMarker ?? 0n);
|
|
@@ -235,7 +224,20 @@ export function axonServerEventStore(conn, context) {
|
|
|
235
224
|
fromSequence: condition.position,
|
|
236
225
|
criterion: criterions,
|
|
237
226
|
};
|
|
238
|
-
|
|
227
|
+
// `close()` must reach the server. This is a server-streaming call: the
|
|
228
|
+
// client sends nothing after the request, so the only way to end it from
|
|
229
|
+
// this side is to cancel it. Abandoning the async iterator does not do
|
|
230
|
+
// that — the `for await` below stays parked on the call until the next
|
|
231
|
+
// event arrives, which at the head of a quiet stream is never, and every
|
|
232
|
+
// closed stream leaves a live call behind on the server. With enough of
|
|
233
|
+
// them open, Axon Server stops answering later `source` reads (a 2-CPU
|
|
234
|
+
// container gets there after a handful): handlers never reply, and
|
|
235
|
+
// commands die at the server's own timeout.
|
|
236
|
+
const cancel = new AbortController();
|
|
237
|
+
const grpcStream = connection.eventStore.stream(request, {
|
|
238
|
+
metadata: createAxonMetadata(),
|
|
239
|
+
signal: cancel.signal,
|
|
240
|
+
});
|
|
239
241
|
// Internal buffer for events pulled from the gRPC stream
|
|
240
242
|
const buffer = [];
|
|
241
243
|
let availableCallback = null;
|
|
@@ -265,13 +267,17 @@ export function axonServerEventStore(conn, context) {
|
|
|
265
267
|
availableCallback?.();
|
|
266
268
|
}
|
|
267
269
|
catch (err) {
|
|
268
|
-
|
|
270
|
+
// Our own cancellation surfaces here as an AbortError; that is the
|
|
271
|
+
// stream closing as asked, not a failure to report.
|
|
272
|
+
if (!completed) {
|
|
273
|
+
streamError = err instanceof Error ? err : new Error(String(err));
|
|
274
|
+
}
|
|
269
275
|
completed = true;
|
|
270
276
|
availableCallback?.();
|
|
271
277
|
}
|
|
272
278
|
}
|
|
273
279
|
startReading();
|
|
274
|
-
return
|
|
280
|
+
return {
|
|
275
281
|
next() {
|
|
276
282
|
return buffer.shift();
|
|
277
283
|
},
|
|
@@ -293,32 +299,21 @@ export function axonServerEventStore(conn, context) {
|
|
|
293
299
|
close() {
|
|
294
300
|
completed = true;
|
|
295
301
|
availableCallback = null;
|
|
296
|
-
|
|
302
|
+
cancel.abort();
|
|
297
303
|
},
|
|
298
|
-
}
|
|
304
|
+
};
|
|
299
305
|
},
|
|
300
306
|
async getHeadPosition() {
|
|
301
|
-
const response = await connection.eventStore.getHead({}, { metadata: createAxonMetadata() });
|
|
307
|
+
const response = await boundedRead(connection.config.readTimeoutMs, (signal) => connection.eventStore.getHead({}, { metadata: createAxonMetadata(), signal }));
|
|
302
308
|
return response.sequence;
|
|
303
309
|
},
|
|
304
310
|
async firstToken() {
|
|
305
311
|
return FIRST_TOKEN;
|
|
306
312
|
},
|
|
307
313
|
async latestToken() {
|
|
308
|
-
const response = await connection.eventStore.getHead({}, { metadata: createAxonMetadata() });
|
|
314
|
+
const response = await boundedRead(connection.config.readTimeoutMs, (signal) => connection.eventStore.getHead({}, { metadata: createAxonMetadata(), signal }));
|
|
309
315
|
return globalSequenceToken(response.sequence);
|
|
310
316
|
},
|
|
311
|
-
// EventBus contract — publish = append without condition, then notify
|
|
312
|
-
// in-process subscribers.
|
|
313
|
-
async publish(events) {
|
|
314
|
-
await this.append(events);
|
|
315
|
-
},
|
|
316
|
-
subscribe(handler) {
|
|
317
|
-
subscribers.add(handler);
|
|
318
|
-
return () => {
|
|
319
|
-
subscribers.delete(handler);
|
|
320
|
-
};
|
|
321
|
-
},
|
|
322
317
|
};
|
|
323
318
|
}
|
|
324
319
|
//# sourceMappingURL=axon-server-event-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axon-server-event-store.js","sourceRoot":"","sources":["../src/axon-server-event-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GAGxB,MAAM,iBAAiB,CAAA;AAQxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"axon-server-event-store.js","sourceRoot":"","sources":["../src/axon-server-event-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EventStore,
|
|
1
|
+
import type { EventStore, SnapshotStoreCapability } from "@kronos-ts/core";
|
|
2
2
|
import type { AxonServerStoreSource } from "./connection.js";
|
|
3
3
|
/**
|
|
4
4
|
* Add the snapshotting capability to an Axon Server-backed log.
|
|
@@ -11,7 +11,7 @@ import type { AxonServerStoreSource } from "./connection.js";
|
|
|
11
11
|
* )
|
|
12
12
|
* ```
|
|
13
13
|
*
|
|
14
|
-
* ADDITIVE, NOT COLLAPSING. It returns `E &
|
|
14
|
+
* ADDITIVE, NOT COLLAPSING. It returns `E & SnapshotStoreCapability` — the store you
|
|
15
15
|
* passed in, plus the write — so capabilities stack in either order and nothing
|
|
16
16
|
* the inner store carried is laundered on the way through.
|
|
17
17
|
*
|
|
@@ -26,5 +26,5 @@ import type { AxonServerStoreSource } from "./connection.js";
|
|
|
26
26
|
* against the cache it needs, not against everything the backend happens to
|
|
27
27
|
* offer.
|
|
28
28
|
*/
|
|
29
|
-
export declare function axonServerSnapshottingEventStore<E extends EventStore>(next: E, conn: AxonServerStoreSource, context: string): E &
|
|
29
|
+
export declare function axonServerSnapshottingEventStore<E extends EventStore>(next: E, conn: AxonServerStoreSource, context: string): E & SnapshotStoreCapability;
|
|
30
30
|
//# sourceMappingURL=axon-server-snapshotting-event-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axon-server-snapshotting-event-store.d.ts","sourceRoot":"","sources":["../src/axon-server-snapshotting-event-store.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,UAAU,EAEV,
|
|
1
|
+
{"version":3,"file":"axon-server-snapshotting-event-store.d.ts","sourceRoot":"","sources":["../src/axon-server-snapshotting-event-store.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,UAAU,EAEV,uBAAuB,EAGxB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAmD5D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,UAAU,EACnE,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,MAAM,GACd,CAAC,GAAG,uBAAuB,CA+E7B"}
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
// ---------------------------------------------------------------------------
|
|
24
24
|
import { withoutSnapshotKey } from "@kronos-ts/core";
|
|
25
25
|
import { contextView } from "./context-view.js";
|
|
26
|
+
import { boundedRead } from "./bounded-read.js";
|
|
26
27
|
// ---------------------------------------------------------------------------
|
|
27
28
|
// Conversion — framework Snapshot ↔ proto Snapshot
|
|
28
29
|
// ---------------------------------------------------------------------------
|
|
@@ -72,7 +73,7 @@ function encodeKey(key) {
|
|
|
72
73
|
* )
|
|
73
74
|
* ```
|
|
74
75
|
*
|
|
75
|
-
* ADDITIVE, NOT COLLAPSING. It returns `E &
|
|
76
|
+
* ADDITIVE, NOT COLLAPSING. It returns `E & SnapshotStoreCapability` — the store you
|
|
76
77
|
* passed in, plus the write — so capabilities stack in either order and nothing
|
|
77
78
|
* the inner store carried is laundered on the way through.
|
|
78
79
|
*
|
|
@@ -93,7 +94,7 @@ export function axonServerSnapshottingEventStore(next, conn, context) {
|
|
|
93
94
|
/** The cached fold filed under `key`, or nothing — the first of the two calls. */
|
|
94
95
|
async function loadSnapshot(key) {
|
|
95
96
|
try {
|
|
96
|
-
const response = await connection.snapshotStore.getLast({ key: encodeKey(key) }, { metadata: createAxonMetadata() });
|
|
97
|
+
const response = await boundedRead(connection.config.readTimeoutMs, (signal) => connection.snapshotStore.getLast({ key: encodeKey(key) }, { metadata: createAxonMetadata(), signal }));
|
|
97
98
|
if (!response.snapshot) {
|
|
98
99
|
return undefined;
|
|
99
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axon-server-snapshotting-event-store.js","sourceRoot":"","sources":["../src/axon-server-snapshotting-event-store.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,EAAE;AACF,sEAAsE;AACtE,iFAAiF;AACjF,iDAAiD;AACjD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,sEAAsE;AACtE,8EAA8E;AAC9E,SAAS;AACT,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAU9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAG/C,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AAEjC;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,UAAsB;IACtD,OAAO;QACL,eAAe,CAAC,IAAY,EAAE,QAAkB;YAC9C,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;YACjE,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,UAAU,CAAC,IAAI;gBACxB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,QAAQ,EAAE,EAAE;aACb,CAAA;QACH,CAAC;QAED,iBAAiB,CAAC,IAAY,EAAE,KAAoB,EAAE,QAAgB;YACpE,MAAM,KAAK,GACT,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBACtB,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAC3E,CAAC,CAAC,EAAE,CAAA;YAER,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;QAC5B,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,gCAAgC,CAC9C,IAAO,EACP,IAA2B,EAC3B,OAAe;IAEf,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3F,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAEnF,kFAAkF;IAClF,KAAK,UAAU,YAAY,CAAC,GAAW;QACrC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"axon-server-snapshotting-event-store.js","sourceRoot":"","sources":["../src/axon-server-snapshotting-event-store.ts"],"names":[],"mappings":"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"}
|
package/dist/axon-server.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { type MessagingLimits } from "@kronos-ts/core";
|
|
1
2
|
import { type ResilienceConfig } from "./resilience.js";
|
|
2
|
-
import type { CommandBus, QueryBus, UnitOfWork } from "@kronos-ts/core";
|
|
3
|
+
import type { CommandBus, QueryBus, SubscriptionCapableQueryBus, UnitOfWork } from "@kronos-ts/core";
|
|
3
4
|
import type { AxonServerBusSource } from "./connection.js";
|
|
4
5
|
/**
|
|
5
6
|
* Flow control configuration for a bus channel.
|
|
@@ -28,6 +29,8 @@ export type ProcessingInstructions = {
|
|
|
28
29
|
* are positional, and this record is the trailing remainder.
|
|
29
30
|
*/
|
|
30
31
|
export type AxonServerCommandBusOptions = {
|
|
32
|
+
/** Client-side request deadline. Default: 30000ms. */
|
|
33
|
+
timeoutMs?: number;
|
|
31
34
|
/** Axon Server context for this bus's stream. Default: the connection's. */
|
|
32
35
|
context?: string;
|
|
33
36
|
/** Flow control for the command stream. */
|
|
@@ -40,6 +43,8 @@ export type AxonServerCommandBusOptions = {
|
|
|
40
43
|
loadFactor?: number;
|
|
41
44
|
/** Retry policy for stream re-establishment. Default: the connection's. */
|
|
42
45
|
resilience?: Partial<ResilienceConfig>;
|
|
46
|
+
/** Bounded admission; excess nested work receives an overload error. */
|
|
47
|
+
limits?: MessagingLimits;
|
|
43
48
|
};
|
|
44
49
|
/**
|
|
45
50
|
* Tuning for {@link axonServerQueryBus}. See {@link AxonServerCommandBusOptions}.
|
|
@@ -60,12 +65,14 @@ export type AxonServerQueryBusOptions = {
|
|
|
60
65
|
*/
|
|
61
66
|
shortcutQueriesToLocalHandlers?: boolean;
|
|
62
67
|
/**
|
|
63
|
-
* Default timeout for query dispatch in ms. Default:
|
|
68
|
+
* Default timeout for query dispatch in ms. Default: 30000ms.
|
|
64
69
|
* Aligned with Java's processing instruction timeout.
|
|
65
70
|
*/
|
|
66
71
|
timeoutMs?: number;
|
|
67
72
|
/** Retry policy for stream re-establishment. Default: the connection's. */
|
|
68
73
|
resilience?: Partial<ResilienceConfig>;
|
|
74
|
+
/** Bounded admission; excess nested work receives an overload error. */
|
|
75
|
+
limits?: MessagingLimits;
|
|
69
76
|
};
|
|
70
77
|
/**
|
|
71
78
|
* A command bus backed by Axon Server, over YOUR next bus.
|
|
@@ -129,10 +136,11 @@ export declare function axonServerCommandBus<U extends UnitOfWork = UnitOfWork>(
|
|
|
129
136
|
* `scatterGather` and `subscriptionQuery`. Because the wrap is outside, the
|
|
130
137
|
* shortcut branch gets identical correlation to the remote branch.
|
|
131
138
|
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
139
|
+
* Subscription queries run the dispatch chain: `interceptingQueryBus` wraps
|
|
140
|
+
* `subscriptionQuery` / `subscribeToUpdates` with the same intercept the
|
|
141
|
+
* primary `query` gets, so the proto built from `message.metadata` already
|
|
142
|
+
* carries whatever the host's intercept stamped (pinned in core by
|
|
143
|
+
* `interception/__tests__/subscription-interception.test.ts`).
|
|
136
144
|
*/
|
|
137
|
-
export declare function axonServerQueryBus<U extends UnitOfWork = UnitOfWork>(next: QueryBus<U>, conn: AxonServerBusSource, options?: AxonServerQueryBusOptions):
|
|
145
|
+
export declare function axonServerQueryBus<U extends UnitOfWork = UnitOfWork>(next: QueryBus<U>, conn: AxonServerBusSource, options?: AxonServerQueryBusOptions): SubscriptionCapableQueryBus<U>;
|
|
138
146
|
//# sourceMappingURL=axon-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axon-server.d.ts","sourceRoot":"","sources":["../src/axon-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"axon-server.d.ts","sourceRoot":"","sources":["../src/axon-server.ts"],"names":[],"mappings":"AACA,OAAO,EAA0D,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAkC9G,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EACV,UAAU,EAEV,QAAQ,EACR,2BAA2B,EAI3B,UAAU,EAEX,MAAM,iBAAiB,CAAA;AAMxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAiB1D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACtC,wEAAwE;IACxE,MAAM,CAAC,EAAE,eAAe,CAAA;CAEzB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yCAAyC;IACzC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B;;;;;;;;OAQG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;IACxC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACtC,wEAAwE;IACxE,MAAM,CAAC,EAAE,eAAe,CAAA;CAEzB,CAAA;AAyED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACpE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE,2BAAgC,GACxC,UAAU,CAAC,CAAC,CAAC,CAuPf;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAClE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EACjB,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE,yBAA8B,GACtC,2BAA2B,CAAC,CAAC,CAAC,CA4nBhC"}
|