@kronos-ts/axon-server 0.3.1 → 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.
- package/dist/axon-server-event-store.d.ts +9 -5
- package/dist/axon-server-event-store.d.ts.map +1 -1
- package/dist/axon-server-event-store.js +38 -30
- package/dist/axon-server-event-store.js.map +1 -1
- package/dist/axon-server-snapshot-store.d.ts +8 -8
- package/dist/axon-server-snapshot-store.d.ts.map +1 -1
- package/dist/axon-server-snapshot-store.js +8 -14
- package/dist/axon-server-snapshot-store.js.map +1 -1
- package/dist/axon-server.d.ts +97 -186
- package/dist/axon-server.d.ts.map +1 -1
- package/dist/axon-server.js +217 -318
- package/dist/axon-server.js.map +1 -1
- package/dist/connection.d.ts +128 -0
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +134 -10
- package/dist/connection.js.map +1 -1
- package/dist/context-view.d.ts +30 -0
- package/dist/context-view.d.ts.map +1 -0
- package/dist/context-view.js +19 -0
- package/dist/context-view.js.map +1 -0
- package/dist/control-plane.d.ts +14 -13
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +8 -6
- package/dist/control-plane.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/flow-controlled-sender.js.map +1 -1
- package/dist/generated/command.d.ts.map +1 -1
- package/dist/generated/command.js.map +1 -1
- package/dist/generated/common.js.map +1 -1
- package/dist/generated/control.d.ts.map +1 -1
- package/dist/generated/control.js.map +1 -1
- package/dist/generated/dcb.d.ts.map +1 -1
- package/dist/generated/dcb.js.map +1 -1
- package/dist/generated/event.d.ts.map +1 -1
- package/dist/generated/event.js.map +1 -1
- package/dist/generated/google/protobuf/empty.js.map +1 -1
- package/dist/generated/query.d.ts.map +1 -1
- package/dist/generated/query.js.map +1 -1
- package/dist/index.d.ts +4 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -5
- package/dist/index.js.map +1 -1
- package/dist/message-size.d.ts.map +1 -1
- package/dist/metadata-conversion.d.ts +1 -1
- package/dist/metadata-conversion.d.ts.map +1 -1
- package/dist/shutdown-latch.d.ts.map +1 -1
- package/dist/shutdown-latch.js.map +1 -1
- package/package.json +4 -8
- package/src/axon-server-event-store.ts +51 -43
- package/src/axon-server-snapshot-store.ts +17 -25
- package/src/axon-server.ts +358 -512
- package/src/connection.ts +270 -18
- package/src/context-view.ts +46 -0
- package/src/control-plane.ts +17 -17
- package/src/index.ts +12 -18
- package/src/metadata-conversion.ts +1 -1
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import type { AxonServerConnection } from "./connection.js";
|
|
1
|
+
import type { EventStore } from "@kronos-ts/core";
|
|
2
|
+
import type { AxonServerStoreSource } from "./connection.js";
|
|
4
3
|
/**
|
|
5
|
-
*
|
|
4
|
+
* An EventStore over Axon Server's DCB event store, in one context.
|
|
6
5
|
*
|
|
7
6
|
* This bridges the framework's EventStore interface to the gRPC
|
|
8
7
|
* DcbEventStore service, handling conversion between framework types
|
|
9
8
|
* and proto messages.
|
|
10
9
|
*
|
|
10
|
+
* `context` is Axon Server's tenancy boundary and is a per-call header, so
|
|
11
|
+
* several contexts share the one channel `conn` holds — see `contextView`. The
|
|
12
|
+
* serializer is the connection's: one codec for everything this client puts on
|
|
13
|
+
* the wire.
|
|
14
|
+
*
|
|
11
15
|
* The {@link open} method returns a persistent {@link MessageStream} backed by
|
|
12
16
|
* a single gRPC Stream RPC call that stays open indefinitely, aligned with
|
|
13
17
|
* Java's infinite {@code ResultStream}.
|
|
14
18
|
*/
|
|
15
|
-
export declare function axonServerEventStore(
|
|
19
|
+
export declare function axonServerEventStore(conn: AxonServerStoreSource, context: string): EventStore;
|
|
16
20
|
//# sourceMappingURL=axon-server-event-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axon-server-event-store.d.ts","sourceRoot":"","sources":["../src/axon-server-event-store.ts"],"names":[],"mappings":"
|
|
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;AA0H5D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CA2M7F"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { qualifiedNameToString, qualifiedNameFromString, } from "@kronos-ts/
|
|
2
|
-
import { messageStream } from "@kronos-ts/
|
|
3
|
-
import { globalSequenceToken, FIRST_TOKEN } from "@kronos-ts/
|
|
4
|
-
import { markerAt, noMarker } from "@kronos-ts/
|
|
5
|
-
import {
|
|
1
|
+
import { qualifiedNameToString, qualifiedNameFromString, } from "@kronos-ts/core";
|
|
2
|
+
import { messageStream, compileQuery } from "@kronos-ts/core";
|
|
3
|
+
import { globalSequenceToken, FIRST_TOKEN } from "@kronos-ts/core";
|
|
4
|
+
import { markerAt, noMarker } from "@kronos-ts/core";
|
|
5
|
+
import { contextView } from "./context-view.js";
|
|
6
6
|
// ---------------------------------------------------------------------------
|
|
7
7
|
// Criteria conversion — framework EventCriteria → proto Criterion[]
|
|
8
8
|
// ---------------------------------------------------------------------------
|
|
@@ -23,23 +23,25 @@ function tagFromProto(tag) {
|
|
|
23
23
|
function criteriaToCriterions(criteria) {
|
|
24
24
|
switch (criteria.kind) {
|
|
25
25
|
case "tags":
|
|
26
|
-
return [
|
|
26
|
+
return [
|
|
27
|
+
{
|
|
27
28
|
tagsAndNames: {
|
|
28
29
|
name: [],
|
|
29
30
|
tag: criteria.tags.map(tagToProto),
|
|
30
31
|
},
|
|
31
|
-
}
|
|
32
|
+
},
|
|
33
|
+
];
|
|
32
34
|
case "type-restricted":
|
|
33
35
|
// Inner must be tags or any-tag
|
|
34
|
-
const innerTags = criteria.inner.kind === "tags"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return [{
|
|
36
|
+
const innerTags = criteria.inner.kind === "tags" ? criteria.inner.tags.map(tagToProto) : [];
|
|
37
|
+
return [
|
|
38
|
+
{
|
|
38
39
|
tagsAndNames: {
|
|
39
40
|
name: [...criteria.types],
|
|
40
41
|
tag: innerTags,
|
|
41
42
|
},
|
|
42
|
-
}
|
|
43
|
+
},
|
|
44
|
+
];
|
|
43
45
|
case "either":
|
|
44
46
|
// Flatten all sub-criteria into a list of criterions (OR semantics)
|
|
45
47
|
return criteria.criteria.flatMap(criteriaToCriterions);
|
|
@@ -70,7 +72,11 @@ function createEventConverters(serializer) {
|
|
|
70
72
|
},
|
|
71
73
|
eventFromProto(protoEvent, tags) {
|
|
72
74
|
const payload = protoEvent.payload.length > 0
|
|
73
|
-
? serializer.deserialize({
|
|
75
|
+
? serializer.deserialize({
|
|
76
|
+
data: protoEvent.payload,
|
|
77
|
+
type: protoEvent.name,
|
|
78
|
+
revision: protoEvent.version,
|
|
79
|
+
})
|
|
74
80
|
: {};
|
|
75
81
|
const metadata = {};
|
|
76
82
|
for (const [k, v] of Object.entries(protoEvent.metadata)) {
|
|
@@ -93,26 +99,24 @@ function createEventConverters(serializer) {
|
|
|
93
99
|
// AxonServerDcbEventStore — implements our EventStore interface via gRPC
|
|
94
100
|
// ---------------------------------------------------------------------------
|
|
95
101
|
/**
|
|
96
|
-
*
|
|
102
|
+
* An EventStore over Axon Server's DCB event store, in one context.
|
|
97
103
|
*
|
|
98
104
|
* This bridges the framework's EventStore interface to the gRPC
|
|
99
105
|
* DcbEventStore service, handling conversion between framework types
|
|
100
106
|
* and proto messages.
|
|
101
107
|
*
|
|
108
|
+
* `context` is Axon Server's tenancy boundary and is a per-call header, so
|
|
109
|
+
* several contexts share the one channel `conn` holds — see `contextView`. The
|
|
110
|
+
* serializer is the connection's: one codec for everything this client puts on
|
|
111
|
+
* the wire.
|
|
112
|
+
*
|
|
102
113
|
* The {@link open} method returns a persistent {@link MessageStream} backed by
|
|
103
114
|
* a single gRPC Stream RPC call that stays open indefinitely, aligned with
|
|
104
115
|
* Java's infinite {@code ResultStream}.
|
|
105
116
|
*/
|
|
106
|
-
export function axonServerEventStore(
|
|
117
|
+
export function axonServerEventStore(conn, context) {
|
|
118
|
+
const { connection, serializer, metadata: createAxonMetadata } = contextView(conn, context);
|
|
107
119
|
const { eventToProto, eventFromProto } = createEventConverters(serializer);
|
|
108
|
-
function createAxonMetadata() {
|
|
109
|
-
const axonMetadata = new Metadata();
|
|
110
|
-
axonMetadata.set("AxonIQ-Context", connection.config.context);
|
|
111
|
-
if (connection.config.token) {
|
|
112
|
-
axonMetadata.set("AxonIQ-Access-Token", connection.config.token);
|
|
113
|
-
}
|
|
114
|
-
return axonMetadata;
|
|
115
|
-
}
|
|
116
120
|
// Push-based subscriber registry (EventBus.subscribe contract). Axon Server's
|
|
117
121
|
// own distribution is the server-side Stream RPC (see open()); these in-process
|
|
118
122
|
// subscribers are notified best-effort on every successful local append.
|
|
@@ -129,7 +133,7 @@ export function axonServerEventStore(connection, serializer) {
|
|
|
129
133
|
}
|
|
130
134
|
return {
|
|
131
135
|
async source(condition) {
|
|
132
|
-
const criterions = criteriaToCriterions(condition.
|
|
136
|
+
const criterions = criteriaToCriterions(compileQuery(condition.query));
|
|
133
137
|
const request = {
|
|
134
138
|
fromSequence: condition.start ?? 0n,
|
|
135
139
|
criterion: criterions,
|
|
@@ -157,10 +161,12 @@ export function axonServerEventStore(connection, serializer) {
|
|
|
157
161
|
async appendEvents(newEvents, condition) {
|
|
158
162
|
const taggedEvents = newEvents.map(eventToProto);
|
|
159
163
|
const request = {
|
|
160
|
-
condition: condition
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
+
condition: condition
|
|
165
|
+
? {
|
|
166
|
+
consistencyMarker: condition.marker.position,
|
|
167
|
+
criterion: criteriaToCriterions(compileQuery(condition.query)),
|
|
168
|
+
}
|
|
169
|
+
: undefined,
|
|
164
170
|
event: taggedEvents,
|
|
165
171
|
};
|
|
166
172
|
// Axon Server's Append RPC is atomic — commit happens on the server
|
|
@@ -171,7 +177,9 @@ export function axonServerEventStore(connection, serializer) {
|
|
|
171
177
|
async function* requestStream() {
|
|
172
178
|
yield request;
|
|
173
179
|
}
|
|
174
|
-
const response = await connection.eventStore.append(requestStream(), {
|
|
180
|
+
const response = await connection.eventStore.append(requestStream(), {
|
|
181
|
+
metadata: createAxonMetadata(),
|
|
182
|
+
});
|
|
175
183
|
responseMarker = response.consistencyMarker;
|
|
176
184
|
await notifySubscribers(newEvents);
|
|
177
185
|
},
|
|
@@ -189,7 +197,7 @@ export function axonServerEventStore(connection, serializer) {
|
|
|
189
197
|
return tx.afterCommit();
|
|
190
198
|
},
|
|
191
199
|
open(condition) {
|
|
192
|
-
const criterions = condition.
|
|
200
|
+
const criterions = condition.query ? criteriaToCriterions(compileQuery(condition.query)) : [];
|
|
193
201
|
const request = {
|
|
194
202
|
fromSequence: condition.position,
|
|
195
203
|
criterion: criterions,
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"axon-server-event-store.js","sourceRoot":"","sources":["../src/axon-server-event-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { SnapshotStore } from "@kronos-ts/
|
|
2
|
-
import type {
|
|
3
|
-
import type { AxonServerConnection } from "./connection.js";
|
|
1
|
+
import type { SnapshotStore } from "@kronos-ts/core";
|
|
2
|
+
import type { AxonServerStoreSource } from "./connection.js";
|
|
4
3
|
/**
|
|
5
|
-
*
|
|
4
|
+
* A SnapshotStore over Axon Server's gRPC snapshot service, in one context.
|
|
6
5
|
*
|
|
7
|
-
* Uses the `DcbSnapshotStore` gRPC service to store and retrieve
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Uses the `DcbSnapshotStore` gRPC service to store and retrieve state
|
|
7
|
+
* snapshots. `context` is a per-call header, so this shares the one channel
|
|
8
|
+
* `conn` holds with every other context — see `contextView`. Payloads go
|
|
9
|
+
* through the connection's serializer.
|
|
10
10
|
*/
|
|
11
|
-
export declare function axonServerSnapshotStore(
|
|
11
|
+
export declare function axonServerSnapshotStore(conn: AxonServerStoreSource, context: string): SnapshotStore;
|
|
12
12
|
//# sourceMappingURL=axon-server-snapshot-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axon-server-snapshot-store.d.ts","sourceRoot":"","sources":["../src/axon-server-snapshot-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"axon-server-snapshot-store.d.ts","sourceRoot":"","sources":["../src/axon-server-snapshot-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,iBAAiB,CAAA;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAgD5D;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,MAAM,GACd,aAAa,CAgDf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { contextView } from "./context-view.js";
|
|
2
2
|
// ---------------------------------------------------------------------------
|
|
3
3
|
// Conversion — framework Snapshot ↔ proto Snapshot
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
@@ -36,22 +36,16 @@ function encodeKey(stateName, id) {
|
|
|
36
36
|
// Axon Server snapshot store
|
|
37
37
|
// ---------------------------------------------------------------------------
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
39
|
+
* A SnapshotStore over Axon Server's gRPC snapshot service, in one context.
|
|
40
40
|
*
|
|
41
|
-
* Uses the `DcbSnapshotStore` gRPC service to store and retrieve
|
|
42
|
-
*
|
|
43
|
-
*
|
|
41
|
+
* Uses the `DcbSnapshotStore` gRPC service to store and retrieve state
|
|
42
|
+
* snapshots. `context` is a per-call header, so this shares the one channel
|
|
43
|
+
* `conn` holds with every other context — see `contextView`. Payloads go
|
|
44
|
+
* through the connection's serializer.
|
|
44
45
|
*/
|
|
45
|
-
export function axonServerSnapshotStore(
|
|
46
|
+
export function axonServerSnapshotStore(conn, context) {
|
|
47
|
+
const { connection, serializer, metadata: createAxonMetadata } = contextView(conn, context);
|
|
46
48
|
const { snapshotToProto, snapshotFromProto } = createSnapshotConverters(serializer);
|
|
47
|
-
function createAxonMetadata() {
|
|
48
|
-
const axonMetadata = new Metadata();
|
|
49
|
-
axonMetadata.set("AxonIQ-Context", connection.config.context);
|
|
50
|
-
if (connection.config.token) {
|
|
51
|
-
axonMetadata.set("AxonIQ-Access-Token", connection.config.token);
|
|
52
|
-
}
|
|
53
|
-
return axonMetadata;
|
|
54
|
-
}
|
|
55
49
|
return {
|
|
56
50
|
async store(stateName, id, snapshot) {
|
|
57
51
|
await connection.snapshotStore.add({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axon-server-snapshot-store.js","sourceRoot":"","sources":["../src/axon-server-snapshot-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"axon-server-snapshot-store.js","sourceRoot":"","sources":["../src/axon-server-snapshot-store.ts"],"names":[],"mappings":"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"}
|