@kronos-ts/kronosdb 0.1.0 → 0.2.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.
@@ -15,10 +15,13 @@
15
15
  * - reverses shutdown deterministically in a single onStop('connect') hook
16
16
  * (busLatches → platform.stop → connection.close — D-101.b).
17
17
  */
18
- import { type ResilienceConfig } from "@kronos-ts/common";
18
+ import { type Serializer, type ResilienceConfig } from "@kronos-ts/common";
19
19
  import type { App } from "@kronos-ts/app";
20
+ import type { QueryBus, UoWRunner } from "@kronos-ts/messaging";
20
21
  import type { KronosDbConnectionConfig } from "./connection.js";
22
+ import { type KronosDbConnection } from "./connection.js";
21
23
  import { type PlatformServiceOptions } from "./platform-service.js";
24
+ import { type ShutdownLatch } from "./shutdown-latch.js";
22
25
  export interface FlowControlConfig {
23
26
  permits?: number;
24
27
  refillThreshold?: number;
@@ -50,4 +53,5 @@ export interface KronosDbExtensionConfig extends KronosDbConnectionConfig {
50
53
  * ```
51
54
  */
52
55
  export declare function kronosDb(serverConfig: KronosDbExtensionConfig): (app: App) => void;
56
+ export declare function createDistributedQueryBus(connection: KronosDbConnection, unitOfWorkRunner: UoWRunner, shutdownLatch: ShutdownLatch, serializer: Serializer, flowControl?: FlowControlConfig, shortcutQueriesToLocalHandlers?: boolean, queryTimeoutMs?: number, resilience?: Partial<ResilienceConfig>): QueryBus;
53
57
  //# sourceMappingURL=kronosdb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kronosdb.d.ts","sourceRoot":"","sources":["../src/kronosdb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAA+G,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACtK,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAK/D,OAAO,EAAqD,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAQtH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA+BD,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE,kBAAkB,CAAC,EAAE,iBAAiB,CAAA;IACtC,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IACpC,eAAe,CAAC,EAAE,sBAAsB,CAAA;IACxC,8BAA8B,CAAC,EAAE,OAAO,CAAA;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAiSlF"}
1
+ {"version":3,"file":"kronosdb.d.ts","sourceRoot":"","sources":["../src/kronosdb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAsE,KAAK,UAAU,EAA0B,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACtK,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAoD,QAAQ,EAA6D,SAAS,EAAiB,MAAM,sBAAsB,CAAA;AAE3L,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAA2C,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAIlG,OAAO,EAAqD,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAGtH,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAK7E,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA+BD,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE,kBAAkB,CAAC,EAAE,iBAAiB,CAAA;IACtC,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IACpC,eAAe,CAAC,EAAE,sBAAsB,CAAA;IACxC,8BAA8B,CAAC,EAAE,OAAO,CAAA;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAiSlF;AAoOD,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,kBAAkB,EAC9B,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,CA4eV"}
package/dist/kronosdb.js CHANGED
@@ -16,7 +16,7 @@
16
16
  * (busLatches → platform.stop → connection.close — D-101.b).
17
17
  */
18
18
  import { generateIdentifier, qualifiedNameFromString, qualifiedNameToString, withRetry, healthCheck } from "@kronos-ts/common";
19
- import { createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging";
19
+ import { applySubscriptionFilter, createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging";
20
20
  import { connectToKronosDb, createKronosMetadata } from "./connection.js";
21
21
  import { KronosDbErrorCode, mapErrorCode } from "./errors.js";
22
22
  import { metadataFromProto, metadataToProto } from "./metadata-conversion.js";
@@ -508,13 +508,19 @@ function createDistributedCommandBus(connection, unitOfWorkRunner, shutdownLatch
508
508
  // ---------------------------------------------------------------------------
509
509
  // Distributed Query Bus
510
510
  // ---------------------------------------------------------------------------
511
- function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch, serializer, flowControl, shortcutQueriesToLocalHandlers, queryTimeoutMs, resilience) {
511
+ export function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch, serializer, flowControl, shortcutQueriesToLocalHandlers, queryTimeoutMs, resilience) {
512
512
  const metadata = createKronosMetadata(connection.config);
513
513
  const PERMITS = BigInt(flowControl?.permits ?? Number(DEFAULT_PERMITS));
514
514
  const THRESHOLD = BigInt(flowControl?.refillThreshold ?? Number(DEFAULT_THRESHOLD));
515
515
  const { serializePayload, deserializePayload } = createPayloadHelpers(serializer);
516
516
  const localSegment = new Map();
517
517
  const subscriptions = new Map();
518
+ // Subscriptions the SERVER has routed to this instance as the handler. Each
519
+ // entry was opened by some subscriber (possibly remote) for a query name we
520
+ // registered as a handler for. emitUpdate / completeSubscription apply the
521
+ // caller-supplied filter against these to decide which subscriber IDs to
522
+ // target. The server then routes each response back to that exact subscriber.
523
+ const handlerSubscriptions = new Map();
518
524
  let outbound = createOutboundStream();
519
525
  let streamStarted = false;
520
526
  let permits = 0n;
@@ -567,9 +573,77 @@ function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch,
567
573
  });
568
574
  }
569
575
  });
576
+ async function handleSubscriptionQueryRequest(req) {
577
+ if (req.subscribe) {
578
+ const sub = req.subscribe;
579
+ const subId = sub.subscriptionIdentifier;
580
+ const proto = sub.queryRequest;
581
+ if (!subId || !proto)
582
+ return;
583
+ const queryName = proto.query;
584
+ const payload = deserializePayload(proto.payload?.data, proto.payload?.type, proto.payload?.revision);
585
+ handlerSubscriptions.set(subId, { queryName, payload });
586
+ const handler = localSegment.get(queryName);
587
+ let resultPayload;
588
+ let errorCode = "";
589
+ let errorMsg = "";
590
+ if (handler) {
591
+ try {
592
+ const queryMessage = {
593
+ identifier: proto.messageIdentifier,
594
+ name: qualifiedNameFromString(queryName),
595
+ payload,
596
+ metadata: metadataFromProto(proto.metadata ?? {}),
597
+ timestamp: Number(proto.timestamp),
598
+ };
599
+ resultPayload = await unitOfWorkRunner(queryMessage.metadata, async () => {
600
+ return handler(queryMessage);
601
+ });
602
+ }
603
+ catch (err) {
604
+ errorCode = KronosDbErrorCode.QUERY_EXECUTION_ERROR;
605
+ errorMsg = err instanceof Error ? err.message : String(err);
606
+ }
607
+ }
608
+ else {
609
+ errorCode = KronosDbErrorCode.NO_HANDLER_FOR_QUERY;
610
+ errorMsg = `No local handler for query "${queryName}"`;
611
+ }
612
+ const responseSerialized = resultPayload !== undefined
613
+ ? serializePayload("result", resultPayload)
614
+ : undefined;
615
+ outbound.send({
616
+ subscriptionQueryResponse: {
617
+ messageIdentifier: generateIdentifier(),
618
+ subscriptionIdentifier: subId,
619
+ initialResult: {
620
+ messageIdentifier: generateIdentifier(),
621
+ requestIdentifier: proto.messageIdentifier,
622
+ errorCode,
623
+ errorMessage: errorCode
624
+ ? { message: errorMsg, location: connection.config.componentName, details: [], errorCode }
625
+ : undefined,
626
+ payload: responseSerialized,
627
+ metadata: {},
628
+ processingInstructions: [],
629
+ },
630
+ },
631
+ instructionId: "",
632
+ });
633
+ return;
634
+ }
635
+ if (req.unsubscribe) {
636
+ handlerSubscriptions.delete(req.unsubscribe.subscriptionIdentifier);
637
+ }
638
+ // flowControl is silently ignored; the bus doesn't track per-sub permits today.
639
+ }
570
640
  async function processInboundQueries(inbound) {
571
641
  try {
572
642
  for await (const message of inbound) {
643
+ if (message.subscriptionQueryRequest) {
644
+ await handleSubscriptionQueryRequest(message.subscriptionQueryRequest);
645
+ continue;
646
+ }
573
647
  if (!message.query)
574
648
  continue;
575
649
  permits--;
@@ -803,47 +877,79 @@ function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch,
803
877
  },
804
878
  async emitUpdate(queryName, filter, update) {
805
879
  runAfterCommitOrImmediately(() => {
806
- for (const [id, handler] of subscriptions) {
807
- if (!handler.active) {
808
- subscriptions.delete(id);
809
- continue;
810
- }
811
- const handlerQueryName = qualifiedNameToString(handler.query.name);
812
- if (handlerQueryName !== queryName)
880
+ for (const [subId, sub] of handlerSubscriptions) {
881
+ if (sub.queryName !== queryName)
813
882
  continue;
814
- if (!filter(handler.query.payload))
883
+ if (!applySubscriptionFilter(filter, sub.payload))
815
884
  continue;
816
- const accepted = handler.offer(update);
817
- if (!accepted) {
818
- handler.completeExceptionally(new Error("Subscription query update buffer overflow"));
819
- subscriptions.delete(id);
820
- }
885
+ const serialized = serializePayload(queryName, update);
886
+ outbound.send({
887
+ subscriptionQueryResponse: {
888
+ messageIdentifier: generateIdentifier(),
889
+ subscriptionIdentifier: subId,
890
+ update: {
891
+ messageIdentifier: generateIdentifier(),
892
+ payload: serialized,
893
+ metadata: {},
894
+ clientId: connection.config.clientId,
895
+ componentName: connection.config.componentName,
896
+ errorCode: "",
897
+ errorMessage: undefined,
898
+ },
899
+ },
900
+ instructionId: "",
901
+ });
821
902
  }
822
903
  });
823
904
  },
824
905
  async completeSubscription(queryName, filter) {
825
906
  runAfterCommitOrImmediately(() => {
826
- for (const [id, handler] of subscriptions) {
827
- const handlerQueryName = qualifiedNameToString(handler.query.name);
828
- if (handlerQueryName !== queryName)
907
+ for (const [subId, sub] of handlerSubscriptions) {
908
+ if (sub.queryName !== queryName)
829
909
  continue;
830
- if (filter && !filter(handler.query.payload))
910
+ if (filter && !applySubscriptionFilter(filter, sub.payload))
831
911
  continue;
832
- handler.complete();
833
- subscriptions.delete(id);
912
+ outbound.send({
913
+ subscriptionQueryResponse: {
914
+ messageIdentifier: generateIdentifier(),
915
+ subscriptionIdentifier: subId,
916
+ complete: {
917
+ clientId: connection.config.clientId,
918
+ componentName: connection.config.componentName,
919
+ },
920
+ },
921
+ instructionId: "",
922
+ });
923
+ handlerSubscriptions.delete(subId);
834
924
  }
835
925
  });
836
926
  },
837
927
  async completeSubscriptionExceptionally(queryName, error, filter) {
838
928
  runAfterCommitOrImmediately(() => {
839
- for (const [id, handler] of subscriptions) {
840
- const handlerQueryName = qualifiedNameToString(handler.query.name);
841
- if (handlerQueryName !== queryName)
929
+ for (const [subId, sub] of handlerSubscriptions) {
930
+ if (sub.queryName !== queryName)
842
931
  continue;
843
- if (filter && !filter(handler.query.payload))
932
+ if (filter && !applySubscriptionFilter(filter, sub.payload))
844
933
  continue;
845
- handler.completeExceptionally(error);
846
- subscriptions.delete(id);
934
+ outbound.send({
935
+ subscriptionQueryResponse: {
936
+ messageIdentifier: generateIdentifier(),
937
+ subscriptionIdentifier: subId,
938
+ completeExceptionally: {
939
+ clientId: connection.config.clientId,
940
+ componentName: connection.config.componentName,
941
+ errorCode: KronosDbErrorCode.QUERY_EXECUTION_ERROR,
942
+ errorMessage: {
943
+ message: error.message,
944
+ location: connection.config.componentName,
945
+ details: [],
946
+ errorCode: KronosDbErrorCode.QUERY_EXECUTION_ERROR,
947
+ },
948
+ },
949
+ },
950
+ instructionId: "",
951
+ });
952
+ handlerSubscriptions.delete(subId);
847
953
  }
848
954
  });
849
955
  },
@@ -1 +1 @@
1
- {"version":3,"file":"kronosdb.js","sourceRoot":"","sources":["../src/kronosdb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kronosdb.js","sourceRoot":"","sources":["../src/kronosdb.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kronos-ts/kronosdb",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "KronosDB extension for Kronos — native event store transport.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -49,11 +49,11 @@
49
49
  }
50
50
  },
51
51
  "dependencies": {
52
- "@kronos-ts/common": "workspace:*",
53
- "@kronos-ts/app": "workspace:*",
54
- "@kronos-ts/eventsourcing": "workspace:*",
55
- "@kronos-ts/messaging": "workspace:*",
56
- "@kronos-ts/modelling": "workspace:*",
52
+ "@kronos-ts/common": "0.1.0",
53
+ "@kronos-ts/app": "0.1.0",
54
+ "@kronos-ts/eventsourcing": "0.1.0",
55
+ "@kronos-ts/messaging": "0.1.0",
56
+ "@kronos-ts/modelling": "0.1.0",
57
57
  "@bufbuild/protobuf": "^2.3",
58
58
  "@grpc/grpc-js": "^1.12",
59
59
  "nice-grpc": "^2.1",
package/src/kronosdb.ts CHANGED
@@ -17,8 +17,8 @@
17
17
  */
18
18
  import { generateIdentifier, qualifiedNameFromString, qualifiedNameToString, type Serializer, withRetry, healthCheck, type ResilienceConfig } from "@kronos-ts/common"
19
19
  import type { App } from "@kronos-ts/app"
20
- import type { CommandBus, CommandMessage, EventProcessorModule, QueryBus, QueryMessage, SubscriptionQueryResult, UoWRunner, UpdateHandler } from "@kronos-ts/messaging"
21
- import { createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging"
20
+ import type { CommandBus, CommandMessage, EventProcessorModule, QueryBus, QueryMessage, SubscriptionFilter, SubscriptionQueryResult, UoWRunner, UpdateHandler } from "@kronos-ts/messaging"
21
+ import { applySubscriptionFilter, createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging"
22
22
  import type { KronosDbConnectionConfig } from "./connection.js"
23
23
  import { connectToKronosDb, createKronosMetadata, type KronosDbConnection } from "./connection.js"
24
24
  import { KronosDbErrorCode, mapErrorCode } from "./errors.js"
@@ -611,7 +611,7 @@ function createDistributedCommandBus(
611
611
  // Distributed Query Bus
612
612
  // ---------------------------------------------------------------------------
613
613
 
614
- function createDistributedQueryBus(
614
+ export function createDistributedQueryBus(
615
615
  connection: KronosDbConnection,
616
616
  unitOfWorkRunner: UoWRunner,
617
617
  shutdownLatch: ShutdownLatch,
@@ -628,6 +628,12 @@ function createDistributedQueryBus(
628
628
 
629
629
  const localSegment = new Map<string, (message: QueryMessage) => Promise<unknown>>()
630
630
  const subscriptions = new Map<string, UpdateHandler>()
631
+ // Subscriptions the SERVER has routed to this instance as the handler. Each
632
+ // entry was opened by some subscriber (possibly remote) for a query name we
633
+ // registered as a handler for. emitUpdate / completeSubscription apply the
634
+ // caller-supplied filter against these to decide which subscriber IDs to
635
+ // target. The server then routes each response back to that exact subscriber.
636
+ const handlerSubscriptions = new Map<string, { queryName: string; payload: unknown }>()
631
637
 
632
638
  let outbound = createOutboundStream<any>()
633
639
  let streamStarted = false
@@ -686,9 +692,84 @@ function createDistributedQueryBus(
686
692
  }
687
693
  })
688
694
 
695
+ async function handleSubscriptionQueryRequest(req: any): Promise<void> {
696
+ if (req.subscribe) {
697
+ const sub = req.subscribe
698
+ const subId: string = sub.subscriptionIdentifier
699
+ const proto = sub.queryRequest
700
+ if (!subId || !proto) return
701
+
702
+ const queryName: string = proto.query
703
+ const payload = deserializePayload(
704
+ proto.payload?.data as Uint8Array | undefined,
705
+ proto.payload?.type,
706
+ proto.payload?.revision,
707
+ )
708
+ handlerSubscriptions.set(subId, { queryName, payload })
709
+
710
+ const handler = localSegment.get(queryName)
711
+ let resultPayload: unknown
712
+ let errorCode = ""
713
+ let errorMsg = ""
714
+
715
+ if (handler) {
716
+ try {
717
+ const queryMessage: QueryMessage = {
718
+ identifier: proto.messageIdentifier,
719
+ name: qualifiedNameFromString(queryName),
720
+ payload,
721
+ metadata: metadataFromProto(proto.metadata ?? {}),
722
+ timestamp: Number(proto.timestamp),
723
+ }
724
+ resultPayload = await unitOfWorkRunner(queryMessage.metadata, async () => {
725
+ return handler(queryMessage)
726
+ })
727
+ } catch (err) {
728
+ errorCode = KronosDbErrorCode.QUERY_EXECUTION_ERROR
729
+ errorMsg = err instanceof Error ? err.message : String(err)
730
+ }
731
+ } else {
732
+ errorCode = KronosDbErrorCode.NO_HANDLER_FOR_QUERY
733
+ errorMsg = `No local handler for query "${queryName}"`
734
+ }
735
+
736
+ const responseSerialized = resultPayload !== undefined
737
+ ? serializePayload("result", resultPayload)
738
+ : undefined
739
+
740
+ outbound.send({
741
+ subscriptionQueryResponse: {
742
+ messageIdentifier: generateIdentifier(),
743
+ subscriptionIdentifier: subId,
744
+ initialResult: {
745
+ messageIdentifier: generateIdentifier(),
746
+ requestIdentifier: proto.messageIdentifier,
747
+ errorCode,
748
+ errorMessage: errorCode
749
+ ? { message: errorMsg, location: connection.config.componentName, details: [], errorCode }
750
+ : undefined,
751
+ payload: responseSerialized,
752
+ metadata: {},
753
+ processingInstructions: [],
754
+ },
755
+ },
756
+ instructionId: "",
757
+ })
758
+ return
759
+ }
760
+ if (req.unsubscribe) {
761
+ handlerSubscriptions.delete(req.unsubscribe.subscriptionIdentifier)
762
+ }
763
+ // flowControl is silently ignored; the bus doesn't track per-sub permits today.
764
+ }
765
+
689
766
  async function processInboundQueries(inbound: AsyncIterable<any>) {
690
767
  try {
691
768
  for await (const message of inbound) {
769
+ if (message.subscriptionQueryRequest) {
770
+ await handleSubscriptionQueryRequest(message.subscriptionQueryRequest)
771
+ continue
772
+ }
692
773
  if (!message.query) continue
693
774
 
694
775
  permits--
@@ -944,39 +1025,56 @@ function createDistributedQueryBus(
944
1025
 
945
1026
  async emitUpdate(
946
1027
  queryName: string,
947
- filter: (queryPayload: unknown) => boolean,
1028
+ filter: SubscriptionFilter,
948
1029
  update: unknown,
949
1030
  ): Promise<void> {
950
1031
  runAfterCommitOrImmediately(() => {
951
- for (const [id, handler] of subscriptions) {
952
- if (!handler.active) {
953
- subscriptions.delete(id)
954
- continue
955
- }
956
- const handlerQueryName = qualifiedNameToString(handler.query.name)
957
- if (handlerQueryName !== queryName) continue
958
- if (!filter(handler.query.payload)) continue
959
-
960
- const accepted = handler.offer(update)
961
- if (!accepted) {
962
- handler.completeExceptionally(new Error("Subscription query update buffer overflow"))
963
- subscriptions.delete(id)
964
- }
1032
+ for (const [subId, sub] of handlerSubscriptions) {
1033
+ if (sub.queryName !== queryName) continue
1034
+ if (!applySubscriptionFilter(filter, sub.payload)) continue
1035
+
1036
+ const serialized = serializePayload(queryName, update)
1037
+ outbound.send({
1038
+ subscriptionQueryResponse: {
1039
+ messageIdentifier: generateIdentifier(),
1040
+ subscriptionIdentifier: subId,
1041
+ update: {
1042
+ messageIdentifier: generateIdentifier(),
1043
+ payload: serialized,
1044
+ metadata: {},
1045
+ clientId: connection.config.clientId,
1046
+ componentName: connection.config.componentName,
1047
+ errorCode: "",
1048
+ errorMessage: undefined,
1049
+ },
1050
+ },
1051
+ instructionId: "",
1052
+ })
965
1053
  }
966
1054
  })
967
1055
  },
968
1056
 
969
1057
  async completeSubscription(
970
1058
  queryName: string,
971
- filter?: (queryPayload: unknown) => boolean,
1059
+ filter?: SubscriptionFilter,
972
1060
  ): Promise<void> {
973
1061
  runAfterCommitOrImmediately(() => {
974
- for (const [id, handler] of subscriptions) {
975
- const handlerQueryName = qualifiedNameToString(handler.query.name)
976
- if (handlerQueryName !== queryName) continue
977
- if (filter && !filter(handler.query.payload)) continue
978
- handler.complete()
979
- subscriptions.delete(id)
1062
+ for (const [subId, sub] of handlerSubscriptions) {
1063
+ if (sub.queryName !== queryName) continue
1064
+ if (filter && !applySubscriptionFilter(filter, sub.payload)) continue
1065
+
1066
+ outbound.send({
1067
+ subscriptionQueryResponse: {
1068
+ messageIdentifier: generateIdentifier(),
1069
+ subscriptionIdentifier: subId,
1070
+ complete: {
1071
+ clientId: connection.config.clientId,
1072
+ componentName: connection.config.componentName,
1073
+ },
1074
+ },
1075
+ instructionId: "",
1076
+ })
1077
+ handlerSubscriptions.delete(subId)
980
1078
  }
981
1079
  })
982
1080
  },
@@ -984,15 +1082,32 @@ function createDistributedQueryBus(
984
1082
  async completeSubscriptionExceptionally(
985
1083
  queryName: string,
986
1084
  error: Error,
987
- filter?: (queryPayload: unknown) => boolean,
1085
+ filter?: SubscriptionFilter,
988
1086
  ): Promise<void> {
989
1087
  runAfterCommitOrImmediately(() => {
990
- for (const [id, handler] of subscriptions) {
991
- const handlerQueryName = qualifiedNameToString(handler.query.name)
992
- if (handlerQueryName !== queryName) continue
993
- if (filter && !filter(handler.query.payload)) continue
994
- handler.completeExceptionally(error)
995
- subscriptions.delete(id)
1088
+ for (const [subId, sub] of handlerSubscriptions) {
1089
+ if (sub.queryName !== queryName) continue
1090
+ if (filter && !applySubscriptionFilter(filter, sub.payload)) continue
1091
+
1092
+ outbound.send({
1093
+ subscriptionQueryResponse: {
1094
+ messageIdentifier: generateIdentifier(),
1095
+ subscriptionIdentifier: subId,
1096
+ completeExceptionally: {
1097
+ clientId: connection.config.clientId,
1098
+ componentName: connection.config.componentName,
1099
+ errorCode: KronosDbErrorCode.QUERY_EXECUTION_ERROR,
1100
+ errorMessage: {
1101
+ message: error.message,
1102
+ location: connection.config.componentName,
1103
+ details: [],
1104
+ errorCode: KronosDbErrorCode.QUERY_EXECUTION_ERROR,
1105
+ },
1106
+ },
1107
+ },
1108
+ instructionId: "",
1109
+ })
1110
+ handlerSubscriptions.delete(subId)
996
1111
  }
997
1112
  })
998
1113
  },