@kronos-ts/axon-server 0.1.1 → 0.2.1

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.
@@ -30,9 +30,12 @@
30
30
  * issued permits before subscriptions; this implementation matches that
31
31
  * exact ordering — see `ensureStreamStarted` / `reestablishStreamBody`).
32
32
  */
33
- import { type ResilienceConfig } from "@kronos-ts/common";
33
+ import { type Serializer, type ResilienceConfig } from "@kronos-ts/common";
34
34
  import type { App } from "@kronos-ts/app";
35
+ import type { QueryBus, UoWRunner } from "@kronos-ts/messaging";
35
36
  import type { AxonServerConnectionConfig } from "./connection.js";
37
+ import { type AxonServerConnection } from "./connection.js";
38
+ import { type ShutdownLatch } from "./shutdown-latch.js";
36
39
  import { type PlatformServiceOptions } from "./platform-service.js";
37
40
  /**
38
41
  * Flow control configuration for a bus channel.
@@ -112,4 +115,14 @@ export interface AxonServerExtensionConfig extends AxonServerConnectionConfig {
112
115
  * ```
113
116
  */
114
117
  export declare function axonServer(serverConfig: AxonServerExtensionConfig): (app: App) => void;
118
+ /**
119
+ * A query bus backed by Axon Server.
120
+ *
121
+ * Same architecture as the distributed command bus:
122
+ * - **Outbound dispatch**: Always through Axon Server.
123
+ * - **Local segment**: Handlers registered here are stored locally and
124
+ * registered with Axon Server for inbound routing. Inbound queries
125
+ * are executed within a UnitOfWork.
126
+ */
127
+ export declare function createDistributedQueryBus(connection: AxonServerConnection, unitOfWorkRunner: UoWRunner, shutdownLatch: ShutdownLatch, serializer: Serializer, flowControl?: FlowControlConfig, shortcutQueriesToLocalHandlers?: boolean, queryTimeoutMs?: number, resilience?: Partial<ResilienceConfig>): QueryBus;
115
128
  //# sourceMappingURL=axon-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"axon-server.d.ts","sourceRoot":"","sources":["../src/axon-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAazC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAQjE,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAA;AAM9B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,+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;AA0DD,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IAC3E,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,iBAAiB,CAAA;IACtC,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IACpC,wDAAwD;IACxD,eAAe,CAAC,EAAE,sBAAsB,CAAA;IACxC;;;;;;;OAOG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;IACxC;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACtC;;;;;;;OAOG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAA;CACnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAuTtF"}
1
+ {"version":3,"file":"axon-server.d.ts","sourceRoot":"","sources":["../src/axon-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAIL,KAAK,UAAU,EAGf,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAIV,QAAQ,EAIR,SAAS,EAEV,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAMhF,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAA;AAM9B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,+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;AA0DD,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IAC3E,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,iBAAiB,CAAA;IACtC,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IACpC,wDAAwD;IACxD,eAAe,CAAC,EAAE,sBAAsB,CAAA;IACxC;;;;;;;OAOG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;IACxC;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACtC;;;;;;;OAOG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAA;CACnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAuTtF;AAsQD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,oBAAoB,EAChC,gBAAgB,EAAE,SAAS,EAC3B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,iBAAiB,EAC/B,8BAA8B,CAAC,EAAE,OAAO,EACxC,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACrC,QAAQ,CAugBV"}
@@ -31,7 +31,7 @@
31
31
  * exact ordering — see `ensureStreamStarted` / `reestablishStreamBody`).
32
32
  */
33
33
  import { qualifiedNameToString, qualifiedNameFromString, generateIdentifier, withRetry, healthCheck, } from "@kronos-ts/common";
34
- import { createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging";
34
+ import { applySubscriptionFilter, createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging";
35
35
  import { Metadata } from "nice-grpc";
36
36
  import { connectToAxonServer } from "./connection.js";
37
37
  import { createAxonServerEventStore } from "./axon-server-event-store.js";
@@ -617,14 +617,21 @@ function createDistributedCommandBus(connection, unitOfWorkRunner, shutdownLatch
617
617
  * registered with Axon Server for inbound routing. Inbound queries
618
618
  * are executed within a UnitOfWork.
619
619
  */
620
- function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch, serializer, flowControl, shortcutQueriesToLocalHandlers, queryTimeoutMs, resilience) {
620
+ export function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch, serializer, flowControl, shortcutQueriesToLocalHandlers, queryTimeoutMs, resilience) {
621
621
  const metadata = createAxonMetadata(connection.config);
622
622
  const PERMITS = BigInt(flowControl?.permits ?? Number(DEFAULT_PERMITS));
623
623
  const THRESHOLD = BigInt(flowControl?.refillThreshold ?? Number(DEFAULT_THRESHOLD));
624
624
  const { serializePayload, deserializePayload } = createPayloadHelpers(serializer);
625
625
  const localSegment = new Map();
626
- // Local subscription store — subscription queries are handled locally
626
+ // Local subscription store — subscription queries opened by THIS instance.
627
+ // Inbound updates from the server are offered into these via the Subscription RPC loop.
627
628
  const subscriptions = new Map();
629
+ // Subscriptions the SERVER has routed to this instance as the handler.
630
+ // Populated when the server delivers SubscriptionQueryRequest.subscribe over OpenStream.
631
+ // emitUpdate / completeSubscription apply the caller-supplied filter against these
632
+ // to decide which subscriber IDs to target; the server forwards each response to the
633
+ // exact subscriber.
634
+ const handlerSubscriptions = new Map();
628
635
  let outbound = createOutboundStream();
629
636
  let streamStarted = false;
630
637
  let permits = 0n;
@@ -685,9 +692,77 @@ function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch,
685
692
  });
686
693
  }
687
694
  });
695
+ async function handleSubscriptionQueryRequest(req) {
696
+ if (req.subscribe) {
697
+ const sub = req.subscribe;
698
+ const subId = sub.subscriptionIdentifier;
699
+ const proto = sub.queryRequest;
700
+ if (!subId || !proto)
701
+ return;
702
+ const queryName = proto.query;
703
+ const payload = deserializePayload(proto.payload?.data, proto.payload?.type, proto.payload?.revision);
704
+ handlerSubscriptions.set(subId, { queryName, payload });
705
+ const handler = localSegment.get(queryName);
706
+ let resultPayload;
707
+ let errorCode = "";
708
+ let errorMsg = "";
709
+ if (handler) {
710
+ try {
711
+ const queryMessage = {
712
+ identifier: proto.messageIdentifier,
713
+ name: qualifiedNameFromString(queryName),
714
+ payload,
715
+ metadata: metadataFromProto(proto.metaData ?? {}),
716
+ timestamp: Number(proto.timestamp),
717
+ };
718
+ resultPayload = await unitOfWorkRunner(queryMessage.metadata, async () => {
719
+ return handler(queryMessage);
720
+ });
721
+ }
722
+ catch (err) {
723
+ errorCode = AxonServerErrorCode.QUERY_EXECUTION_ERROR;
724
+ errorMsg = err instanceof Error ? err.message : String(err);
725
+ }
726
+ }
727
+ else {
728
+ errorCode = AxonServerErrorCode.NO_HANDLER_FOR_QUERY;
729
+ errorMsg = `No local handler for query "${queryName}"`;
730
+ }
731
+ const responseSerialized = resultPayload !== undefined
732
+ ? serializePayload("result", resultPayload)
733
+ : undefined;
734
+ outbound.send({
735
+ subscriptionQueryResponse: {
736
+ messageIdentifier: generateIdentifier(),
737
+ subscriptionIdentifier: subId,
738
+ initialResult: {
739
+ messageIdentifier: generateIdentifier(),
740
+ requestIdentifier: proto.messageIdentifier,
741
+ errorCode,
742
+ errorMessage: errorCode
743
+ ? { message: errorMsg, location: connection.config.componentName, details: [], errorCode }
744
+ : undefined,
745
+ payload: responseSerialized,
746
+ metaData: {},
747
+ processingInstructions: [],
748
+ },
749
+ },
750
+ instructionId: "",
751
+ });
752
+ return;
753
+ }
754
+ if (req.unsubscribe) {
755
+ handlerSubscriptions.delete(req.unsubscribe.subscriptionIdentifier);
756
+ }
757
+ // flowControl + getInitialResult are not tracked per-sub; ignored for now.
758
+ }
688
759
  async function processInboundQueries(inbound) {
689
760
  try {
690
761
  for await (const message of inbound) {
762
+ if (message.subscriptionQueryRequest) {
763
+ await handleSubscriptionQueryRequest(message.subscriptionQueryRequest);
764
+ continue;
765
+ }
691
766
  if (!message.query)
692
767
  continue;
693
768
  permits--;
@@ -937,47 +1012,79 @@ function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch,
937
1012
  },
938
1013
  async emitUpdate(queryName, filter, update) {
939
1014
  runAfterCommitOrImmediately(() => {
940
- for (const [id, handler] of subscriptions) {
941
- if (!handler.active) {
942
- subscriptions.delete(id);
943
- continue;
944
- }
945
- const handlerQueryName = qualifiedNameToString(handler.query.name);
946
- if (handlerQueryName !== queryName)
1015
+ for (const [subId, sub] of handlerSubscriptions) {
1016
+ if (sub.queryName !== queryName)
947
1017
  continue;
948
- if (!filter(handler.query.payload))
1018
+ if (!applySubscriptionFilter(filter, sub.payload))
949
1019
  continue;
950
- const accepted = handler.offer(update);
951
- if (!accepted) {
952
- handler.completeExceptionally(new Error("Subscription query update buffer overflow"));
953
- subscriptions.delete(id);
954
- }
1020
+ const serialized = serializePayload(queryName, update);
1021
+ outbound.send({
1022
+ subscriptionQueryResponse: {
1023
+ messageIdentifier: generateIdentifier(),
1024
+ subscriptionIdentifier: subId,
1025
+ update: {
1026
+ messageIdentifier: generateIdentifier(),
1027
+ payload: serialized,
1028
+ metaData: {},
1029
+ clientId: connection.config.clientId,
1030
+ componentName: connection.config.componentName,
1031
+ errorCode: "",
1032
+ errorMessage: undefined,
1033
+ },
1034
+ },
1035
+ instructionId: "",
1036
+ });
955
1037
  }
956
1038
  });
957
1039
  },
958
1040
  async completeSubscription(queryName, filter) {
959
1041
  runAfterCommitOrImmediately(() => {
960
- for (const [id, handler] of subscriptions) {
961
- const handlerQueryName = qualifiedNameToString(handler.query.name);
962
- if (handlerQueryName !== queryName)
1042
+ for (const [subId, sub] of handlerSubscriptions) {
1043
+ if (sub.queryName !== queryName)
963
1044
  continue;
964
- if (filter && !filter(handler.query.payload))
1045
+ if (filter && !applySubscriptionFilter(filter, sub.payload))
965
1046
  continue;
966
- handler.complete();
967
- subscriptions.delete(id);
1047
+ outbound.send({
1048
+ subscriptionQueryResponse: {
1049
+ messageIdentifier: generateIdentifier(),
1050
+ subscriptionIdentifier: subId,
1051
+ complete: {
1052
+ clientId: connection.config.clientId,
1053
+ componentName: connection.config.componentName,
1054
+ },
1055
+ },
1056
+ instructionId: "",
1057
+ });
1058
+ handlerSubscriptions.delete(subId);
968
1059
  }
969
1060
  });
970
1061
  },
971
1062
  async completeSubscriptionExceptionally(queryName, error, filter) {
972
1063
  runAfterCommitOrImmediately(() => {
973
- for (const [id, handler] of subscriptions) {
974
- const handlerQueryName = qualifiedNameToString(handler.query.name);
975
- if (handlerQueryName !== queryName)
1064
+ for (const [subId, sub] of handlerSubscriptions) {
1065
+ if (sub.queryName !== queryName)
976
1066
  continue;
977
- if (filter && !filter(handler.query.payload))
1067
+ if (filter && !applySubscriptionFilter(filter, sub.payload))
978
1068
  continue;
979
- handler.completeExceptionally(error);
980
- subscriptions.delete(id);
1069
+ outbound.send({
1070
+ subscriptionQueryResponse: {
1071
+ messageIdentifier: generateIdentifier(),
1072
+ subscriptionIdentifier: subId,
1073
+ completeExceptionally: {
1074
+ clientId: connection.config.clientId,
1075
+ componentName: connection.config.componentName,
1076
+ errorCode: AxonServerErrorCode.QUERY_EXECUTION_ERROR,
1077
+ errorMessage: {
1078
+ message: error.message,
1079
+ location: connection.config.componentName,
1080
+ details: [],
1081
+ errorCode: AxonServerErrorCode.QUERY_EXECUTION_ERROR,
1082
+ },
1083
+ },
1084
+ },
1085
+ instructionId: "",
1086
+ });
1087
+ handlerSubscriptions.delete(subId);
981
1088
  }
982
1089
  });
983
1090
  },
@@ -1 +1 @@
1
- {"version":3,"file":"axon-server.js","sourceRoot":"","sources":["../src/axon-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axon-server.js","sourceRoot":"","sources":["../src/axon-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kronos-ts/axon-server",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "Axon Server extension for Kronos — event store and command bus over Axon Server.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -46,11 +46,12 @@ import type {
46
46
  EventProcessorModule,
47
47
  QueryBus,
48
48
  QueryMessage,
49
+ SubscriptionFilter,
49
50
  SubscriptionQueryResult,
50
51
  UoWRunner,
51
52
  UpdateHandler,
52
53
  } from "@kronos-ts/messaging"
53
- import { createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging"
54
+ import { applySubscriptionFilter, createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging"
54
55
  import { Metadata } from "nice-grpc"
55
56
  import type { AxonServerConnectionConfig } from "./connection.js"
56
57
  import { connectToAxonServer, type AxonServerConnection } from "./connection.js"
@@ -788,7 +789,7 @@ function createDistributedCommandBus(
788
789
  * registered with Axon Server for inbound routing. Inbound queries
789
790
  * are executed within a UnitOfWork.
790
791
  */
791
- function createDistributedQueryBus(
792
+ export function createDistributedQueryBus(
792
793
  connection: AxonServerConnection,
793
794
  unitOfWorkRunner: UoWRunner,
794
795
  shutdownLatch: ShutdownLatch,
@@ -805,9 +806,17 @@ function createDistributedQueryBus(
805
806
 
806
807
  const localSegment = new Map<string, (message: QueryMessage) => Promise<unknown>>()
807
808
 
808
- // Local subscription store — subscription queries are handled locally
809
+ // Local subscription store — subscription queries opened by THIS instance.
810
+ // Inbound updates from the server are offered into these via the Subscription RPC loop.
809
811
  const subscriptions = new Map<string, UpdateHandler>()
810
812
 
813
+ // Subscriptions the SERVER has routed to this instance as the handler.
814
+ // Populated when the server delivers SubscriptionQueryRequest.subscribe over OpenStream.
815
+ // emitUpdate / completeSubscription apply the caller-supplied filter against these
816
+ // to decide which subscriber IDs to target; the server forwards each response to the
817
+ // exact subscriber.
818
+ const handlerSubscriptions = new Map<string, { queryName: string; payload: unknown }>()
819
+
811
820
  let outbound = createOutboundStream<any>()
812
821
  let streamStarted = false
813
822
  let permits = 0n
@@ -873,9 +882,84 @@ function createDistributedQueryBus(
873
882
  }
874
883
  })
875
884
 
885
+ async function handleSubscriptionQueryRequest(req: any): Promise<void> {
886
+ if (req.subscribe) {
887
+ const sub = req.subscribe
888
+ const subId: string = sub.subscriptionIdentifier
889
+ const proto = sub.queryRequest
890
+ if (!subId || !proto) return
891
+
892
+ const queryName: string = proto.query
893
+ const payload = deserializePayload(
894
+ proto.payload?.data as Uint8Array | undefined,
895
+ proto.payload?.type,
896
+ proto.payload?.revision,
897
+ )
898
+ handlerSubscriptions.set(subId, { queryName, payload })
899
+
900
+ const handler = localSegment.get(queryName)
901
+ let resultPayload: unknown
902
+ let errorCode = ""
903
+ let errorMsg = ""
904
+
905
+ if (handler) {
906
+ try {
907
+ const queryMessage: QueryMessage = {
908
+ identifier: proto.messageIdentifier,
909
+ name: qualifiedNameFromString(queryName),
910
+ payload,
911
+ metadata: metadataFromProto(proto.metaData ?? {}),
912
+ timestamp: Number(proto.timestamp),
913
+ }
914
+ resultPayload = await unitOfWorkRunner(queryMessage.metadata, async () => {
915
+ return handler(queryMessage)
916
+ })
917
+ } catch (err) {
918
+ errorCode = AxonServerErrorCode.QUERY_EXECUTION_ERROR
919
+ errorMsg = err instanceof Error ? err.message : String(err)
920
+ }
921
+ } else {
922
+ errorCode = AxonServerErrorCode.NO_HANDLER_FOR_QUERY
923
+ errorMsg = `No local handler for query "${queryName}"`
924
+ }
925
+
926
+ const responseSerialized = resultPayload !== undefined
927
+ ? serializePayload("result", resultPayload)
928
+ : undefined
929
+
930
+ outbound.send({
931
+ subscriptionQueryResponse: {
932
+ messageIdentifier: generateIdentifier(),
933
+ subscriptionIdentifier: subId,
934
+ initialResult: {
935
+ messageIdentifier: generateIdentifier(),
936
+ requestIdentifier: proto.messageIdentifier,
937
+ errorCode,
938
+ errorMessage: errorCode
939
+ ? { message: errorMsg, location: connection.config.componentName, details: [], errorCode }
940
+ : undefined,
941
+ payload: responseSerialized,
942
+ metaData: {},
943
+ processingInstructions: [],
944
+ },
945
+ },
946
+ instructionId: "",
947
+ })
948
+ return
949
+ }
950
+ if (req.unsubscribe) {
951
+ handlerSubscriptions.delete(req.unsubscribe.subscriptionIdentifier)
952
+ }
953
+ // flowControl + getInitialResult are not tracked per-sub; ignored for now.
954
+ }
955
+
876
956
  async function processInboundQueries(inbound: AsyncIterable<any>) {
877
957
  try {
878
958
  for await (const message of inbound) {
959
+ if (message.subscriptionQueryRequest) {
960
+ await handleSubscriptionQueryRequest(message.subscriptionQueryRequest)
961
+ continue
962
+ }
879
963
  if (!message.query) continue
880
964
 
881
965
  permits--
@@ -1146,39 +1230,56 @@ function createDistributedQueryBus(
1146
1230
 
1147
1231
  async emitUpdate(
1148
1232
  queryName: string,
1149
- filter: (queryPayload: unknown) => boolean,
1233
+ filter: SubscriptionFilter,
1150
1234
  update: unknown,
1151
1235
  ): Promise<void> {
1152
1236
  runAfterCommitOrImmediately(() => {
1153
- for (const [id, handler] of subscriptions) {
1154
- if (!handler.active) {
1155
- subscriptions.delete(id)
1156
- continue
1157
- }
1158
- const handlerQueryName = qualifiedNameToString(handler.query.name)
1159
- if (handlerQueryName !== queryName) continue
1160
- if (!filter(handler.query.payload)) continue
1161
-
1162
- const accepted = handler.offer(update)
1163
- if (!accepted) {
1164
- handler.completeExceptionally(new Error("Subscription query update buffer overflow"))
1165
- subscriptions.delete(id)
1166
- }
1237
+ for (const [subId, sub] of handlerSubscriptions) {
1238
+ if (sub.queryName !== queryName) continue
1239
+ if (!applySubscriptionFilter(filter, sub.payload)) continue
1240
+
1241
+ const serialized = serializePayload(queryName, update)
1242
+ outbound.send({
1243
+ subscriptionQueryResponse: {
1244
+ messageIdentifier: generateIdentifier(),
1245
+ subscriptionIdentifier: subId,
1246
+ update: {
1247
+ messageIdentifier: generateIdentifier(),
1248
+ payload: serialized,
1249
+ metaData: {},
1250
+ clientId: connection.config.clientId,
1251
+ componentName: connection.config.componentName,
1252
+ errorCode: "",
1253
+ errorMessage: undefined,
1254
+ },
1255
+ },
1256
+ instructionId: "",
1257
+ })
1167
1258
  }
1168
1259
  })
1169
1260
  },
1170
1261
 
1171
1262
  async completeSubscription(
1172
1263
  queryName: string,
1173
- filter?: (queryPayload: unknown) => boolean,
1264
+ filter?: SubscriptionFilter,
1174
1265
  ): Promise<void> {
1175
1266
  runAfterCommitOrImmediately(() => {
1176
- for (const [id, handler] of subscriptions) {
1177
- const handlerQueryName = qualifiedNameToString(handler.query.name)
1178
- if (handlerQueryName !== queryName) continue
1179
- if (filter && !filter(handler.query.payload)) continue
1180
- handler.complete()
1181
- subscriptions.delete(id)
1267
+ for (const [subId, sub] of handlerSubscriptions) {
1268
+ if (sub.queryName !== queryName) continue
1269
+ if (filter && !applySubscriptionFilter(filter, sub.payload)) continue
1270
+
1271
+ outbound.send({
1272
+ subscriptionQueryResponse: {
1273
+ messageIdentifier: generateIdentifier(),
1274
+ subscriptionIdentifier: subId,
1275
+ complete: {
1276
+ clientId: connection.config.clientId,
1277
+ componentName: connection.config.componentName,
1278
+ },
1279
+ },
1280
+ instructionId: "",
1281
+ })
1282
+ handlerSubscriptions.delete(subId)
1182
1283
  }
1183
1284
  })
1184
1285
  },
@@ -1186,15 +1287,32 @@ function createDistributedQueryBus(
1186
1287
  async completeSubscriptionExceptionally(
1187
1288
  queryName: string,
1188
1289
  error: Error,
1189
- filter?: (queryPayload: unknown) => boolean,
1290
+ filter?: SubscriptionFilter,
1190
1291
  ): Promise<void> {
1191
1292
  runAfterCommitOrImmediately(() => {
1192
- for (const [id, handler] of subscriptions) {
1193
- const handlerQueryName = qualifiedNameToString(handler.query.name)
1194
- if (handlerQueryName !== queryName) continue
1195
- if (filter && !filter(handler.query.payload)) continue
1196
- handler.completeExceptionally(error)
1197
- subscriptions.delete(id)
1293
+ for (const [subId, sub] of handlerSubscriptions) {
1294
+ if (sub.queryName !== queryName) continue
1295
+ if (filter && !applySubscriptionFilter(filter, sub.payload)) continue
1296
+
1297
+ outbound.send({
1298
+ subscriptionQueryResponse: {
1299
+ messageIdentifier: generateIdentifier(),
1300
+ subscriptionIdentifier: subId,
1301
+ completeExceptionally: {
1302
+ clientId: connection.config.clientId,
1303
+ componentName: connection.config.componentName,
1304
+ errorCode: AxonServerErrorCode.QUERY_EXECUTION_ERROR,
1305
+ errorMessage: {
1306
+ message: error.message,
1307
+ location: connection.config.componentName,
1308
+ details: [],
1309
+ errorCode: AxonServerErrorCode.QUERY_EXECUTION_ERROR,
1310
+ },
1311
+ },
1312
+ },
1313
+ instructionId: "",
1314
+ })
1315
+ handlerSubscriptions.delete(subId)
1198
1316
  }
1199
1317
  })
1200
1318
  },