@zlink-systems/framework 0.30.3 → 0.32.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/.tsbuildinfo +1 -1
- package/dist/contracts/Actors/ZLinkActor.d.ts +2 -0
- package/dist/contracts/Actors/ZLinkSessionBindingIdentity.d.ts +6 -0
- package/dist/contracts/Actors/ZLinkSessionBindingIdentity.js +2 -0
- package/dist/contracts/Actors/index.d.ts +1 -0
- package/dist/contracts/Actors/index.js +1 -0
- package/dist/contracts/Common/CoreTypes.d.ts +1 -0
- package/dist/contracts/Common/HandlerMessageType.d.ts +8 -0
- package/dist/contracts/Common/HandlerMessageType.js +41 -0
- package/dist/contracts/Common/ZLinkEncodedPayload.d.ts +1 -1
- package/dist/contracts/Common/ZLinkEncodedPayload.js +12 -20
- package/dist/contracts/Common/ZLinkMessage.js +11 -7
- package/dist/contracts/Common/encoded-payload-storage.d.ts +0 -2
- package/dist/contracts/Common/encoded-payload-storage.js +4 -16
- package/dist/contracts/Common/index.d.ts +1 -1
- package/dist/contracts/Common/payload-slab.d.ts +4 -0
- package/dist/contracts/Common/payload-slab.js +30 -0
- package/dist/contracts/Configuration/RegistrationBuilders.js +15 -9
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +19 -0
- package/dist/contracts/Handlers/Contexts.d.ts +1 -0
- package/dist/contracts/Locations/Authority.d.ts +2 -0
- package/dist/internal.d.ts +9 -0
- package/dist/internal.js +23 -1
- package/dist/nest-integration.d.ts +1 -0
- package/dist/nest-integration.js +3 -1
- package/dist/runtime/actors/actor-client.d.ts +6 -2
- package/dist/runtime/actors/actor-client.js +120 -82
- package/dist/runtime/actors/actor-context.js +16 -5
- package/dist/runtime/actors/actor-execution-context.js +2 -2
- package/dist/runtime/actors/actor-handoff.d.ts +12 -1
- package/dist/runtime/actors/actor-handoff.js +79 -34
- package/dist/runtime/actors/actor-join-deferred-scope.js +6 -6
- package/dist/runtime/actors/actor-local-native-join.d.ts +2 -2
- package/dist/runtime/actors/actor-local-native-join.js +19 -17
- package/dist/runtime/actors/actor-mailbox.d.ts +1 -1
- package/dist/runtime/actors/actor-remote-joiner.d.ts +2 -2
- package/dist/runtime/actors/actor-remote-joiner.js +4 -4
- package/dist/runtime/actors/actor-routed-join-transport.d.ts +9 -3
- package/dist/runtime/actors/actor-routed-json-request.d.ts +3 -0
- package/dist/runtime/actors/actor-runtime-contracts.d.ts +2 -2
- package/dist/runtime/actors/actor-runtime-state.d.ts +1 -1
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +9 -5
- package/dist/runtime/actors/spot-actor-dispatch.js +60 -38
- package/dist/runtime/admission.d.ts +6 -4
- package/dist/runtime/admission.js +21 -10
- package/dist/runtime/application-jobs/application-ingress-record-owner.d.ts +1 -0
- package/dist/runtime/application-jobs/application-ingress-record-owner.js +3 -0
- package/dist/runtime/backend/contracts/index.d.ts +26 -10
- package/dist/runtime/backend/mesh-completion-table.d.ts +7 -1
- package/dist/runtime/backend/mesh-completion-table.js +84 -20
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +19 -6
- package/dist/runtime/backend/mesh-dispatch-pump.js +246 -147
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -2
- package/dist/runtime/backend/node/node-backend-adapter-support.js +27 -19
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +5 -2
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +70 -13
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +4 -3
- package/dist/runtime/backend/node/node-mesh-backend-adapter.js +5 -1
- package/dist/runtime/backend/node/node-raw-binding-port.d.ts +7 -2
- package/dist/runtime/backend/node/node-raw-binding-port.js +99 -63
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +34 -16
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +210 -106
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +20 -6
- package/dist/runtime/backend/raw-binding-port.d.ts +6 -3
- package/dist/runtime/channels/channel-clients.js +3 -3
- package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +11 -7
- package/dist/runtime/channels/channel-dispatch-pipeline.js +40 -22
- package/dist/runtime/channels/channel-dispatch-services.d.ts +3 -1
- package/dist/runtime/channels/channel-dispatch-services.js +7 -6
- package/dist/runtime/channels/channel-dispatchers.d.ts +13 -6
- package/dist/runtime/channels/channel-dispatchers.js +57 -36
- package/dist/runtime/channels/channel-envelope.d.ts +2 -2
- package/dist/runtime/channels/channel-envelope.js +609 -83
- package/dist/runtime/channels/channel-multipart.d.ts +1 -0
- package/dist/runtime/channels/channel-multipart.js +10 -6
- package/dist/runtime/channels/channel-outbound-operations.d.ts +6 -9
- package/dist/runtime/channels/channel-outbound-operations.js +107 -105
- package/dist/runtime/channels/channel-receive-loops.d.ts +9 -7
- package/dist/runtime/channels/channel-receive-loops.js +126 -90
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +23 -6
- package/dist/runtime/channels/channel-runtime-lifecycle.js +47 -38
- package/dist/runtime/channels/channel-runtime-manager.d.ts +13 -6
- package/dist/runtime/channels/channel-runtime-manager.js +32 -14
- package/dist/runtime/channels/channel-socket-registry.d.ts +28 -4
- package/dist/runtime/channels/channel-socket-registry.js +9 -1
- package/dist/runtime/channels/channel-transports.d.ts +23 -16
- package/dist/runtime/channels/channel-transports.js +139 -119
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +4 -4
- package/dist/runtime/channels/dispatch-error-reporter.js +5 -5
- package/dist/runtime/channels/fanout-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/local-spot-route-transport.d.ts +5 -2
- package/dist/runtime/channels/local-spot-route-transport.js +15 -18
- package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +6 -3
- package/dist/runtime/channels/router-socket-spot-route-transport.js +33 -19
- package/dist/runtime/channels/source-spot-router.d.ts +6 -3
- package/dist/runtime/channels/source-spot-router.js +34 -23
- package/dist/runtime/channels/spot-node-route-transport.d.ts +6 -3
- package/dist/runtime/channels/spot-node-route-transport.js +23 -17
- package/dist/runtime/channels/spot-route-bridge-transport.d.ts +6 -3
- package/dist/runtime/channels/spot-route-bridge-transport.js +38 -24
- package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +8 -4
- package/dist/runtime/channels/spot-route-dispatch-strategy.js +36 -23
- package/dist/runtime/diagnostics/dispatch-error-details.js +9 -3
- package/dist/runtime/diagnostics/message-flow-bootstrap.d.ts +1 -0
- package/dist/runtime/diagnostics/message-flow-bootstrap.js +8 -0
- package/dist/runtime/diagnostics/message-flow-delivery.d.ts +47 -0
- package/dist/runtime/diagnostics/message-flow-delivery.js +149 -0
- package/dist/runtime/diagnostics/message-flow-record.d.ts +50 -0
- package/dist/runtime/diagnostics/message-flow-record.js +228 -0
- package/dist/runtime/diagnostics/message-flow-worker.d.ts +1 -0
- package/dist/runtime/diagnostics/message-flow-worker.js +118 -0
- package/dist/runtime/diagnostics/message-flow.d.ts +7 -19
- package/dist/runtime/diagnostics/message-flow.js +42 -290
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +4 -3
- package/dist/runtime/diagnostics/runtime-metrics.js +8 -4
- package/dist/runtime/execution/index.d.ts +1 -0
- package/dist/runtime/execution/index.js +6 -3
- package/dist/runtime/execution/serial-execution-queue.d.ts +26 -13
- package/dist/runtime/execution/serial-execution-queue.js +75 -71
- package/dist/runtime/foundation/durable-service-request.d.ts +12 -3
- package/dist/runtime/foundation/durable-service-request.js +158 -73
- package/dist/runtime/foundation/operation-registry.d.ts +33 -3
- package/dist/runtime/foundation/operation-registry.js +272 -33
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +62 -23
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +373 -194
- package/dist/runtime/foundation/request-runtime.d.ts +17 -0
- package/dist/runtime/foundation/request-runtime.js +163 -0
- package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
- package/dist/runtime/foundation/service-discovery-registry.js +6 -0
- package/dist/runtime/foundation/service-liveness-registry.d.ts +1 -1
- package/dist/runtime/foundation/service-mailbox.d.ts +4 -2
- package/dist/runtime/foundation/service-mailbox.js +4 -1
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +2 -2
- package/dist/runtime/foundation/service-relocation-object-owner.js +12 -5
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +7 -2
- package/dist/runtime/foundation/service-stateful-registry.d.ts +6 -2
- package/dist/runtime/foundation/service-stateful-registry.js +38 -17
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +91 -26
- package/dist/runtime/foundation/service-stateful-runtime.js +245 -120
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -0
- package/dist/runtime/foundation/service-stateful-wire-codec.js +15 -0
- package/dist/runtime/foundation/service-topology-registry.d.ts +2 -0
- package/dist/runtime/foundation/service-topology-registry.js +13 -3
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +12 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +5 -1
- package/dist/runtime/foundation/service-wire-m6a-codec.js +50 -15
- package/dist/runtime/host/actor-packet-relay.d.ts +5 -6
- package/dist/runtime/host/actor-packet-relay.js +58 -57
- package/dist/runtime/host/actor-placement-coordinator.d.ts +1 -1
- package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/actor-runtime-options-factory.js +3 -2
- package/dist/runtime/host/actor-transfer-runtime.d.ts +3 -3
- package/dist/runtime/host/application-job-queue.d.ts +7 -5
- package/dist/runtime/host/application-job-queue.js +33 -21
- package/dist/runtime/host/bound-session-relay.js +0 -1
- package/dist/runtime/host/channel-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/channel-runtime-options-factory.js +1 -0
- package/dist/runtime/host/entry-actor-runtime.d.ts +5 -2
- package/dist/runtime/host/entry-actor-runtime.js +2 -2
- package/dist/runtime/host/index.d.ts +106 -37
- package/dist/runtime/host/index.js +303 -151
- package/dist/runtime/host/location-runtime-owner.d.ts +2 -2
- package/dist/runtime/host/location-runtime-owner.js +1 -1
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +195 -45
- package/dist/runtime/host/service-relocation-host-runtime.js +257 -144
- package/dist/runtime/host/spot-address-transport.d.ts +3 -0
- package/dist/runtime/host/spot-address-transport.js +73 -76
- package/dist/runtime/host/spot-runtime-options-factory.js +2 -0
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -1
- package/dist/runtime/host/user-spot-creation-coordinator.js +49 -21
- package/dist/runtime/internal-observation.d.ts +1 -0
- package/dist/runtime/internal-observation.js +5 -0
- package/dist/runtime/locations/actor-location-claims.d.ts +1 -1
- package/dist/runtime/locations/actor-location-claims.js +15 -6
- package/dist/runtime/locations/auto-connect-loop.d.ts +0 -1
- package/dist/runtime/locations/auto-connect-loop.js +25 -19
- package/dist/runtime/locations/auto-connect-planner.js +2 -5
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +1 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +35 -23
- package/dist/runtime/locations/in-memory-authority-store.d.ts +1 -0
- package/dist/runtime/locations/in-memory-authority-store.js +15 -5
- package/dist/runtime/locations/in-memory-location-store.d.ts +0 -2
- package/dist/runtime/locations/in-memory-location-store.js +1 -38
- package/dist/runtime/locations/lifecycle.d.ts +1 -1
- package/dist/runtime/locations/lifecycle.js +2 -2
- package/dist/runtime/locations/location-store-repository.d.ts +0 -1
- package/dist/runtime/locations/location-store-repository.js +163 -246
- package/dist/runtime/locations/resolvers.d.ts +8 -1
- package/dist/runtime/locations/resolvers.js +16 -2
- package/dist/runtime/locations/runtime.d.ts +3 -3
- package/dist/runtime/locations/runtime.js +12 -16
- package/dist/runtime/messaging/creation-payload-codec.js +8 -7
- package/dist/runtime/messaging/framework-json-v1.d.ts +1 -1
- package/dist/runtime/messaging/framework-json-v1.js +6 -2
- package/dist/runtime/messaging/payload-codec.js +21 -35
- package/dist/runtime/messaging/request-deadline.d.ts +4 -2
- package/dist/runtime/messaging/request-deadline.js +40 -25
- package/dist/runtime/messaging/request-result.d.ts +14 -1
- package/dist/runtime/messaging/request-result.js +74 -13
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +4 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +17 -7
- package/dist/runtime/spots/index.d.ts +28 -7
- package/dist/runtime/spots/index.js +31 -6
- package/dist/runtime/spots/spot-activation-registry.d.ts +3 -2
- package/dist/runtime/spots/spot-activation-registry.js +13 -8
- package/dist/runtime/spots/spot-activation-state.d.ts +2 -0
- package/dist/runtime/spots/spot-activation-state.js +1 -0
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +9 -4
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +33 -12
- package/dist/runtime/spots/spot-actor-ingress-admission.d.ts +40 -0
- package/dist/runtime/spots/spot-actor-ingress-admission.js +78 -0
- package/dist/runtime/spots/spot-actor-membership.js +3 -3
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +16 -43
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +56 -113
- package/dist/runtime/spots/spot-actor-packet-drain.d.ts +1 -0
- package/dist/runtime/spots/spot-actor-packet-drain.js +12 -5
- package/dist/runtime/spots/spot-entry-activation.d.ts +4 -3
- package/dist/runtime/spots/spot-entry-activation.js +7 -12
- package/dist/runtime/spots/spot-handler-registry.d.ts +5 -1
- package/dist/runtime/spots/spot-handler-registry.js +31 -15
- package/dist/runtime/spots/spot-manager-public.js +3 -2
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +11 -6
- package/dist/runtime/spots/spot-node-runtime-manager.js +6 -1
- package/dist/runtime/spots/spot-outbound.d.ts +8 -2
- package/dist/runtime/spots/spot-outbound.js +5 -5
- package/dist/runtime/spots/spot-route-packet-dispatch.js +13 -8
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +3 -3
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +9 -5
- package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -2
- package/dist/runtime/spots/spot-serial-executor.d.ts +2 -1
- package/dist/runtime/spots/spot-serial-turn-executor.js +20 -26
- package/dist/runtime/spots/spot-subscription-dispatch.js +5 -2
- package/dist/runtime/spots/spot-timer.d.ts +1 -1
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +11 -3
- package/dist/runtime/streams/actor-session-binding-registry.js +28 -0
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +2 -2
- package/dist/runtime/streams/bound-actor-relay-sender.js +3 -4
- package/dist/runtime/streams/bound-session-service.js +6 -7
- package/dist/runtime/streams/index.d.ts +3 -3
- package/dist/runtime/streams/index.js +22 -2
- package/dist/runtime/streams/managed-stream.js +2 -1
- package/dist/runtime/streams/session-calls.d.ts +1 -1
- package/dist/runtime/streams/session-calls.js +3 -9
- package/dist/runtime/streams/session-context.d.ts +2 -2
- package/dist/runtime/streams/session-context.js +2 -2
- package/dist/runtime/streams/stream-session-runtime.d.ts +1 -0
- package/dist/runtime/streams/stream-session-runtime.js +64 -33
- package/package.json +3 -3
- package/src/contracts/Actors/ZLinkActor.ts +6 -0
- package/src/contracts/Actors/ZLinkSessionBindingIdentity.ts +7 -0
- package/src/contracts/Actors/index.ts +1 -0
- package/src/contracts/Common/CoreTypes.ts +1 -0
- package/src/contracts/Common/HandlerMessageType.ts +50 -0
- package/src/contracts/Common/ZLinkEncodedPayload.ts +13 -25
- package/src/contracts/Common/ZLinkMessage.ts +11 -7
- package/src/contracts/Common/encoded-payload-storage.ts +4 -16
- package/src/contracts/Common/index.ts +1 -1
- package/src/contracts/Common/payload-slab.ts +29 -0
- package/src/contracts/Configuration/RegistrationBuilders.ts +29 -15
- package/src/contracts/Configuration/RegistrationTypes.ts +19 -0
- package/src/contracts/Handlers/Contexts.ts +1 -0
- package/src/contracts/Locations/Authority.ts +7 -1
- package/src/internal.ts +17 -0
- package/src/nest-integration.ts +1 -0
- package/src/runtime/actors/actor-client.ts +257 -163
- package/src/runtime/actors/actor-context.ts +26 -14
- package/src/runtime/actors/actor-execution-context.ts +2 -2
- package/src/runtime/actors/actor-handoff.ts +86 -51
- package/src/runtime/actors/actor-join-deferred-scope.ts +6 -6
- package/src/runtime/actors/actor-local-native-join.ts +38 -17
- package/src/runtime/actors/actor-mailbox.ts +1 -1
- package/src/runtime/actors/actor-remote-joiner.ts +8 -4
- package/src/runtime/actors/actor-routed-join-transport.ts +13 -5
- package/src/runtime/actors/actor-routed-json-request.ts +3 -0
- package/src/runtime/actors/actor-runtime-contracts.ts +4 -2
- package/src/runtime/actors/actor-runtime-state.ts +1 -1
- package/src/runtime/actors/spot-actor-dispatch.ts +70 -68
- package/src/runtime/admission.ts +42 -15
- package/src/runtime/application-jobs/application-ingress-record-owner.ts +4 -0
- package/src/runtime/backend/contracts/index.ts +77 -10
- package/src/runtime/backend/mesh-completion-table.ts +106 -15
- package/src/runtime/backend/mesh-dispatch-pump.ts +294 -146
- package/src/runtime/backend/node/node-backend-adapter-support.ts +42 -32
- package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +91 -34
- package/src/runtime/backend/node/node-event-loop-poller.ts +14 -5
- package/src/runtime/backend/node/node-mesh-backend-adapter.ts +5 -1
- package/src/runtime/backend/node/node-raw-binding-port.ts +180 -69
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +386 -157
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +56 -11
- package/src/runtime/backend/raw-binding-port.ts +13 -5
- package/src/runtime/channels/channel-clients.ts +26 -11
- package/src/runtime/channels/channel-dispatch-pipeline.ts +77 -65
- package/src/runtime/channels/channel-dispatch-services.ts +7 -12
- package/src/runtime/channels/channel-dispatchers.ts +93 -39
- package/src/runtime/channels/channel-envelope.ts +680 -144
- package/src/runtime/channels/channel-multipart.ts +17 -13
- package/src/runtime/channels/channel-outbound-operations.ts +204 -178
- package/src/runtime/channels/channel-receive-loops.ts +160 -107
- package/src/runtime/channels/channel-runtime-lifecycle.ts +64 -59
- package/src/runtime/channels/channel-runtime-manager.ts +74 -27
- package/src/runtime/channels/channel-socket-registry.ts +20 -5
- package/src/runtime/channels/channel-transports.ts +414 -287
- package/src/runtime/channels/dispatch-error-reporter.ts +4 -9
- package/src/runtime/channels/local-spot-route-transport.ts +27 -29
- package/src/runtime/channels/router-socket-spot-route-transport.ts +63 -32
- package/src/runtime/channels/source-spot-router.ts +75 -38
- package/src/runtime/channels/spot-node-route-transport.ts +67 -37
- package/src/runtime/channels/spot-route-bridge-transport.ts +62 -30
- package/src/runtime/channels/spot-route-dispatch-strategy.ts +105 -34
- package/src/runtime/diagnostics/dispatch-error-details.ts +10 -2
- package/src/runtime/diagnostics/message-flow-bootstrap.ts +6 -0
- package/src/runtime/diagnostics/message-flow-delivery.ts +171 -0
- package/src/runtime/diagnostics/message-flow-record.ts +295 -0
- package/src/runtime/diagnostics/message-flow-worker.ts +146 -0
- package/src/runtime/diagnostics/message-flow.ts +49 -362
- package/src/runtime/diagnostics/runtime-metrics.ts +10 -4
- package/src/runtime/execution/index.ts +6 -0
- package/src/runtime/execution/serial-execution-queue.ts +94 -96
- package/src/runtime/foundation/durable-service-request.ts +212 -89
- package/src/runtime/foundation/operation-registry.ts +287 -38
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +617 -292
- package/src/runtime/foundation/request-runtime.ts +227 -0
- package/src/runtime/foundation/service-discovery-registry.ts +7 -0
- package/src/runtime/foundation/service-liveness-registry.ts +1 -1
- package/src/runtime/foundation/service-mailbox.ts +7 -2
- package/src/runtime/foundation/service-relocation-object-owner.ts +21 -6
- package/src/runtime/foundation/service-runtime-contracts.ts +12 -2
- package/src/runtime/foundation/service-stateful-registry.ts +52 -19
- package/src/runtime/foundation/service-stateful-runtime.ts +365 -198
- package/src/runtime/foundation/service-stateful-wire-codec.ts +18 -0
- package/src/runtime/foundation/service-topology-registry.ts +21 -3
- package/src/runtime/foundation/service-wire-constants.generated.ts +10 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +69 -17
- package/src/runtime/host/actor-packet-relay.ts +160 -156
- package/src/runtime/host/actor-placement-coordinator.ts +1 -1
- package/src/runtime/host/actor-runtime-options-factory.ts +7 -2
- package/src/runtime/host/actor-transfer-runtime.ts +3 -3
- package/src/runtime/host/application-job-queue.ts +56 -27
- package/src/runtime/host/bound-session-relay.ts +0 -1
- package/src/runtime/host/channel-runtime-options-factory.ts +3 -0
- package/src/runtime/host/entry-actor-runtime.ts +14 -6
- package/src/runtime/host/index.ts +388 -113
- package/src/runtime/host/location-runtime-owner.ts +3 -3
- package/src/runtime/host/service-relocation-host-runtime.ts +380 -252
- package/src/runtime/host/spot-address-transport.ts +110 -95
- package/src/runtime/host/spot-runtime-options-factory.ts +3 -0
- package/src/runtime/host/user-spot-creation-coordinator.ts +69 -22
- package/src/runtime/internal-observation.ts +2 -0
- package/src/runtime/locations/actor-location-claims.ts +42 -16
- package/src/runtime/locations/auto-connect-loop.ts +24 -16
- package/src/runtime/locations/auto-connect-planner.ts +2 -5
- package/src/runtime/locations/auto-connect-reconciler.ts +37 -24
- package/src/runtime/locations/in-memory-authority-store.ts +27 -7
- package/src/runtime/locations/in-memory-location-store.ts +1 -74
- package/src/runtime/locations/lifecycle.ts +4 -2
- package/src/runtime/locations/location-store-repository.ts +228 -308
- package/src/runtime/locations/resolvers.ts +20 -8
- package/src/runtime/locations/runtime.ts +16 -28
- package/src/runtime/messaging/creation-payload-codec.ts +12 -10
- package/src/runtime/messaging/framework-json-v1.ts +10 -1
- package/src/runtime/messaging/payload-codec.ts +50 -75
- package/src/runtime/messaging/request-deadline.ts +47 -39
- package/src/runtime/messaging/request-result.ts +88 -17
- package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
- package/src/runtime/spots/index.ts +57 -10
- package/src/runtime/spots/spot-activation-registry.ts +12 -8
- package/src/runtime/spots/spot-activation-state.ts +2 -0
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +62 -37
- package/src/runtime/spots/spot-actor-ingress-admission.ts +157 -0
- package/src/runtime/spots/spot-actor-membership.ts +8 -5
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +122 -206
- package/src/runtime/spots/spot-actor-packet-drain.ts +21 -6
- package/src/runtime/spots/spot-entry-activation.ts +25 -35
- package/src/runtime/spots/spot-handler-registry.ts +72 -15
- package/src/runtime/spots/spot-manager-public.ts +4 -2
- package/src/runtime/spots/spot-node-runtime-manager.ts +16 -7
- package/src/runtime/spots/spot-outbound.ts +26 -10
- package/src/runtime/spots/spot-route-packet-dispatch.ts +18 -8
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +14 -8
- package/src/runtime/spots/spot-runtime-ports.ts +5 -2
- package/src/runtime/spots/spot-serial-executor.ts +1 -1
- package/src/runtime/spots/spot-serial-turn-executor.ts +25 -40
- package/src/runtime/spots/spot-subscription-dispatch.ts +9 -2
- package/src/runtime/spots/spot-timer.ts +1 -1
- package/src/runtime/streams/actor-session-binding-registry.ts +46 -3
- package/src/runtime/streams/bound-actor-relay-sender.ts +16 -5
- package/src/runtime/streams/bound-session-service.ts +10 -7
- package/src/runtime/streams/index.ts +30 -4
- package/src/runtime/streams/managed-stream.ts +2 -1
- package/src/runtime/streams/session-calls.ts +9 -14
- package/src/runtime/streams/session-context.ts +6 -11
- package/src/runtime/streams/stream-session-runtime.ts +79 -40
- package/dist/runtime/spots/spot-lifecycle-metrics.d.ts +0 -8
- package/dist/runtime/spots/spot-lifecycle-metrics.js +0 -17
- package/src/runtime/spots/spot-lifecycle-metrics.ts +0 -16
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { RequestRuntime } from '../foundation/request-runtime';
|
|
2
|
+
import type { PendingOperation, OperationObserver } from '../foundation/operation-registry';
|
|
1
3
|
import type { ZLinkMeshDispatchAdmission } from '../admission';
|
|
4
|
+
import { type ZLinkRequestResult } from '../messaging/request-result';
|
|
2
5
|
import type { ZLinkListenerRecords } from '../foundation/listener-records';
|
|
3
6
|
import type { ZLinkLocationOptionOverrides } from '../../contracts/Locations/Options';
|
|
4
7
|
import type { RoutingId } from '../../contracts';
|
|
@@ -6,6 +9,7 @@ import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProvider
|
|
|
6
9
|
import type { ZLinkSubmitResult } from '../messaging/submission-result';
|
|
7
10
|
import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
|
|
8
11
|
import type { ZLinkMessageFlowModeCell } from '../diagnostics';
|
|
12
|
+
import type { ZLinkTelemetryLease } from '../diagnostics/message-flow-delivery';
|
|
9
13
|
import type { Message } from '../../contracts/Common/Message';
|
|
10
14
|
import type { ReceiveRecord } from '../foundation/service-runtime-contracts';
|
|
11
15
|
import { type ZLinkFrameworkRegistration } from '../configuration';
|
|
@@ -15,6 +19,7 @@ import { ZLinkLocationRuntime, type ZLinkLocationEventSink, type ZLinkLocationRu
|
|
|
15
19
|
import { type ZLinkRouteRuntimeRequestHandler, type ZLinkRouteRuntimeSendHandler } from './channel-dispatchers';
|
|
16
20
|
import { ApplicationJobQueue } from '../host/application-job-queue';
|
|
17
21
|
export declare class ZLinkChannelRuntimeManager {
|
|
22
|
+
private readonly requests;
|
|
18
23
|
private readonly registration;
|
|
19
24
|
private readonly sockets;
|
|
20
25
|
private readonly spotRoutes;
|
|
@@ -46,22 +51,23 @@ export declare class ZLinkChannelRuntimeManager {
|
|
|
46
51
|
dispatchLocalMeshRoute(meshName: string, sourceNodeRid: RoutingId, parts: readonly Message[], signal?: AbortSignal): Promise<void>;
|
|
47
52
|
canDispatchLocalMeshRoute(meshName: string): boolean;
|
|
48
53
|
send(channelName: string, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
|
|
49
|
-
request<TReply>(channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void):
|
|
54
|
+
request<TReply>(channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): ZLinkRequestResult<TReply>;
|
|
50
55
|
tryPublish(channelName: string, topic: string, packetName: string | undefined, event: unknown, metadata?: ReadonlyMap<string, string>): ZLinkSubmitResult;
|
|
51
56
|
publish(channelName: string, topic: string, packetName: string | undefined, event: unknown, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
|
|
52
57
|
routeSubmit(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
|
|
53
|
-
routeRequest<TReply>(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void): Promise<TReply>;
|
|
58
|
+
routeRequest<TReply>(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): Promise<TReply>;
|
|
54
59
|
routeSendToSpot(spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<void>;
|
|
55
|
-
routeRequestToSpot<TReply>(spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void): Promise<TReply>;
|
|
56
|
-
routeRequestFromSpotToSpot<TReply>(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<TReply>;
|
|
60
|
+
routeRequestToSpot<TReply>(spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>, destination?: OperationObserver<unknown, unknown>): Promise<TReply>;
|
|
61
|
+
routeRequestFromSpotToSpot<TReply>(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>, destination?: OperationObserver<unknown, unknown>): Promise<TReply>;
|
|
57
62
|
routeSendFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<void>;
|
|
58
|
-
routeRequestRawFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<readonly Message[]>;
|
|
59
|
-
routeRequestRawToSpot(spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<readonly Message[]>;
|
|
63
|
+
routeRequestRawFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): Promise<readonly Message[]>;
|
|
64
|
+
routeRequestRawToSpot(spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): Promise<readonly Message[]>;
|
|
60
65
|
canRouteChannel(routerChannelId: string): boolean;
|
|
61
66
|
canRoutePacketChannel(routerChannelId: string): boolean;
|
|
62
67
|
dispose(signal?: AbortSignal): Promise<void>;
|
|
63
68
|
}
|
|
64
69
|
export interface ZLinkChannelRuntimeManagerOptions {
|
|
70
|
+
readonly requests?: RequestRuntime;
|
|
65
71
|
readonly listenerRecords?: ZLinkListenerRecords;
|
|
66
72
|
readonly internalRouteSendHandlers?: ReadonlyMap<string, ZLinkRouteRuntimeSendHandler>;
|
|
67
73
|
readonly internalRouteRequestHandlers?: ReadonlyMap<string, ZLinkRouteRuntimeRequestHandler>;
|
|
@@ -77,6 +83,7 @@ export interface ZLinkChannelRuntimeManagerOptions {
|
|
|
77
83
|
}): Promise<TReply>;
|
|
78
84
|
};
|
|
79
85
|
readonly messageFlowModeCell?: ZLinkMessageFlowModeCell;
|
|
86
|
+
readonly telemetryLease?: ZLinkTelemetryLease;
|
|
80
87
|
readonly oneWayFailureSink?: (error: unknown) => void;
|
|
81
88
|
readonly applicationJobQueue?: ApplicationJobQueue;
|
|
82
89
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkChannelRuntimeManager = void 0;
|
|
4
|
+
const request_runtime_1 = require("../foundation/request-runtime");
|
|
5
|
+
const request_result_1 = require("../messaging/request-result");
|
|
4
6
|
const configuration_1 = require("../configuration");
|
|
5
7
|
const channel_socket_registry_1 = require("./channel-socket-registry");
|
|
6
8
|
const channel_dispatch_services_1 = require("./channel-dispatch-services");
|
|
@@ -9,6 +11,7 @@ const channel_runtime_lifecycle_1 = require("./channel-runtime-lifecycle");
|
|
|
9
11
|
const spot_route_dispatch_strategy_1 = require("./spot-route-dispatch-strategy");
|
|
10
12
|
const application_job_queue_1 = require("../host/application-job-queue");
|
|
11
13
|
class ZLinkChannelRuntimeManager {
|
|
14
|
+
requests;
|
|
12
15
|
registration;
|
|
13
16
|
sockets;
|
|
14
17
|
spotRoutes;
|
|
@@ -16,15 +19,17 @@ class ZLinkChannelRuntimeManager {
|
|
|
16
19
|
lifecycle;
|
|
17
20
|
constructor(registration, adapter, context, providerResolver, options = {}) {
|
|
18
21
|
this.registration = registration;
|
|
22
|
+
this.requests = options.requests ?? new request_runtime_1.RequestRuntime();
|
|
19
23
|
const applicationJobQueue = options.applicationJobQueue ??
|
|
20
24
|
new application_job_queue_1.ApplicationJobQueue((0, application_job_queue_1.resolveApplicationJobQueueConfiguration)());
|
|
21
25
|
this.sockets = new channel_socket_registry_1.ZLinkChannelSocketRegistry(registration, adapter, context, options.monitoringAdapter, options.oneWayFailureSink, applicationJobQueue, options.listenerRecords);
|
|
22
26
|
const codecs = {
|
|
23
27
|
serializers: registration.messageSerializers
|
|
24
28
|
};
|
|
25
|
-
const dispatchServices = new channel_dispatch_services_1.ZLinkChannelDispatchServices(registration, providerResolver, options.messageFlowModeCell);
|
|
29
|
+
const dispatchServices = new channel_dispatch_services_1.ZLinkChannelDispatchServices(registration, providerResolver, options.messageFlowModeCell, options.telemetryLease);
|
|
26
30
|
const spotRouteBridges = new Map();
|
|
27
31
|
this.spotRoutes = new spot_route_dispatch_strategy_1.ZLinkSpotRouteDispatchStrategy({
|
|
32
|
+
requests: this.requests,
|
|
28
33
|
registration,
|
|
29
34
|
sockets: this.sockets,
|
|
30
35
|
codecs,
|
|
@@ -32,7 +37,7 @@ class ZLinkChannelRuntimeManager {
|
|
|
32
37
|
localSpotRouteDispatcher: options.localSpotRouteDispatcher,
|
|
33
38
|
flowCreationEnabled: () => dispatchServices.flowCreationEnabled()
|
|
34
39
|
});
|
|
35
|
-
this.outbound = new channel_outbound_operations_1.ZLinkChannelOutboundOperations(this.sockets, codecs, dispatchServices);
|
|
40
|
+
this.outbound = new channel_outbound_operations_1.ZLinkChannelOutboundOperations(this.sockets, codecs, dispatchServices, this.requests);
|
|
36
41
|
this.lifecycle = new channel_runtime_lifecycle_1.ZLinkChannelRuntimeLifecycle({
|
|
37
42
|
registration,
|
|
38
43
|
adapter,
|
|
@@ -141,8 +146,20 @@ class ZLinkChannelRuntimeManager {
|
|
|
141
146
|
send(channelName, packetName, message, metadata) {
|
|
142
147
|
return this.outbound.send(channelName, packetName, message, metadata);
|
|
143
148
|
}
|
|
144
|
-
|
|
145
|
-
|
|
149
|
+
request(channelName, packetName, request, timeoutMs, signal, metadata, onAdmitted, requestOperation) {
|
|
150
|
+
try {
|
|
151
|
+
const operation = this.requests.begin(timeoutMs, signal, requestOperation);
|
|
152
|
+
const pending = this.outbound.request(channelName, packetName, request, timeoutMs, signal, metadata, onAdmitted, operation);
|
|
153
|
+
return {
|
|
154
|
+
pending,
|
|
155
|
+
decode: (request_result_1.identityRequestReply),
|
|
156
|
+
mapFailure: request_result_1.identityRequestReply,
|
|
157
|
+
operation: operation
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
return (0, request_result_1.rejectZLinkRequestReply)(error);
|
|
162
|
+
}
|
|
146
163
|
}
|
|
147
164
|
tryPublish(channelName, topic, packetName, event, metadata) {
|
|
148
165
|
return this.outbound.tryPublish(channelName, topic, packetName, event, metadata);
|
|
@@ -153,26 +170,26 @@ class ZLinkChannelRuntimeManager {
|
|
|
153
170
|
routeSubmit(routerChannelId, targetNodeRid, packetName, message, metadata) {
|
|
154
171
|
return this.outbound.routeSubmit(routerChannelId, targetNodeRid, packetName, message, metadata);
|
|
155
172
|
}
|
|
156
|
-
|
|
157
|
-
return this.outbound.routeRequest(routerChannelId, targetNodeRid, packetName, request, timeoutMs, signal, metadata, onAdmitted);
|
|
173
|
+
routeRequest(routerChannelId, targetNodeRid, packetName, request, timeoutMs, signal, metadata, onAdmitted, requestOperation) {
|
|
174
|
+
return this.outbound.routeRequest(routerChannelId, targetNodeRid, packetName, request, timeoutMs, signal, metadata, onAdmitted, requestOperation);
|
|
158
175
|
}
|
|
159
176
|
async routeSendToSpot(spotRouteTarget, packetName, message, metadata) {
|
|
160
177
|
return this.spotRoutes.routeSendToSpot(spotRouteTarget, packetName, message, metadata);
|
|
161
178
|
}
|
|
162
|
-
|
|
163
|
-
return this.spotRoutes.routeRequestToSpot(spotRouteTarget, packetName, request, timeoutMs, signal, metadata, onAdmitted);
|
|
179
|
+
routeRequestToSpot(spotRouteTarget, packetName, request, timeoutMs, signal, metadata, onAdmitted, requestOperation, destination) {
|
|
180
|
+
return this.spotRoutes.routeRequestToSpot(spotRouteTarget, packetName, request, timeoutMs, signal, metadata, onAdmitted, requestOperation, destination);
|
|
164
181
|
}
|
|
165
|
-
|
|
166
|
-
return this.spotRoutes.routeRequestFromSpotToSpot(sourceSpot, spotRouteTarget, packetName, request, timeoutMs, signal, onAdmitted);
|
|
182
|
+
routeRequestFromSpotToSpot(sourceSpot, spotRouteTarget, packetName, request, timeoutMs, signal, onAdmitted, requestOperation, destination) {
|
|
183
|
+
return this.spotRoutes.routeRequestFromSpotToSpot(sourceSpot, spotRouteTarget, packetName, request, timeoutMs, signal, onAdmitted, requestOperation, destination);
|
|
167
184
|
}
|
|
168
185
|
async routeSendFromSpotToSpot(sourceSpot, spotRouteTarget, packetName, message, metadata) {
|
|
169
186
|
return this.spotRoutes.routeSendFromSpotToSpot(sourceSpot, spotRouteTarget, packetName, message, metadata);
|
|
170
187
|
}
|
|
171
|
-
async routeRequestRawFromSpotToSpot(sourceSpot, spotRouteTarget, request, timeoutMs, signal, onAdmitted) {
|
|
172
|
-
return this.spotRoutes.routeRequestRawFromSpotToSpot(sourceSpot, spotRouteTarget, request, timeoutMs, signal, onAdmitted);
|
|
188
|
+
async routeRequestRawFromSpotToSpot(sourceSpot, spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation) {
|
|
189
|
+
return this.spotRoutes.routeRequestRawFromSpotToSpot(sourceSpot, spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation);
|
|
173
190
|
}
|
|
174
|
-
async routeRequestRawToSpot(spotRouteTarget, request, timeoutMs, signal, onAdmitted) {
|
|
175
|
-
return this.spotRoutes.routeRequestRawToSpot(spotRouteTarget, request, timeoutMs, signal, onAdmitted);
|
|
191
|
+
async routeRequestRawToSpot(spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation) {
|
|
192
|
+
return this.spotRoutes.routeRequestRawToSpot(spotRouteTarget, request, timeoutMs, signal, onAdmitted, requestOperation);
|
|
176
193
|
}
|
|
177
194
|
canRouteChannel(routerChannelId) {
|
|
178
195
|
return this.spotRoutes.canRouteChannel(routerChannelId);
|
|
@@ -181,6 +198,7 @@ class ZLinkChannelRuntimeManager {
|
|
|
181
198
|
return this.spotRoutes.canRoutePacketChannel(routerChannelId);
|
|
182
199
|
}
|
|
183
200
|
async dispose(signal) {
|
|
201
|
+
this.requests.close();
|
|
184
202
|
await this.lifecycle.dispose(signal);
|
|
185
203
|
}
|
|
186
204
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { inspectRuntime } from '../internal-observation';
|
|
1
2
|
import { type RoutingId, type ZLinkClientServerServerDescriptor, type ZLinkFanoutPublisherDescriptor } from '../../contracts';
|
|
2
3
|
import type { Message } from '../../contracts/Common/Message';
|
|
3
|
-
import type { ZLinkBackendContext, ZLinkBackendDealerSocket, ZLinkBackendPublisherSocket, ZLinkBackendRouterSocket, ZLinkBackendSocketMonitor, ZLinkBackendSubscriberSocket, ZLinkChannelBackendAdapter, ZLinkMonitoringBackendAdapter } from '../backend/contracts';
|
|
4
|
+
import type { ZLinkBackendContext, ZLinkBackendDealerSocket, ZLinkBackendPublisherSocket, ZLinkBackendReadablePoller, ZLinkBackendRouterSocket, ZLinkBackendSocketMonitor, ZLinkBackendSubscriberSocket, ZLinkChannelBackendAdapter, ZLinkMonitoringBackendAdapter } from '../backend/contracts';
|
|
4
5
|
import { type ZLinkFrameworkRegistration } from '../configuration';
|
|
5
6
|
import { ZLinkListenerRecords } from '../foundation/listener-records';
|
|
6
7
|
import { ServiceDiscoveryRegistry } from '../foundation/service-discovery-registry';
|
|
7
8
|
import { ServiceLivenessConnection } from '../foundation/service-liveness-registry';
|
|
8
9
|
import type { ApplicationJobQueue } from '../host/application-job-queue';
|
|
9
10
|
import type { ZLinkChannelEnvelopeHeader } from './channel-envelope';
|
|
11
|
+
import { type ZLinkClientServerAdmission } from './client-server-service-wire';
|
|
10
12
|
export interface ZLinkClientServerServerSocketIdentity {
|
|
11
13
|
readonly serverRid: string;
|
|
12
14
|
readonly lifecycleGeneration: bigint;
|
|
@@ -17,6 +19,20 @@ export interface ZLinkClientServerConnectionCallbacks {
|
|
|
17
19
|
readonly onTerminated: (routingId: string | undefined, endpoint: string) => void;
|
|
18
20
|
}
|
|
19
21
|
type ClientServerDiscoveryDescriptor = Parameters<ServiceDiscoveryRegistry['admitClientServer']>[0];
|
|
22
|
+
interface ClientServerPhysicalConnection {
|
|
23
|
+
readonly channelName: string;
|
|
24
|
+
readonly endpoint: string;
|
|
25
|
+
readonly dealer: ZLinkBackendDealerSocket;
|
|
26
|
+
readablePoller?: ZLinkBackendReadablePoller;
|
|
27
|
+
monitor?: ZLinkBackendSocketMonitor;
|
|
28
|
+
readonly aliases: Set<string>;
|
|
29
|
+
readonly callbacksByAlias: Map<string, ZLinkClientServerConnectionCallbacks>;
|
|
30
|
+
physicalConnectionId: symbol;
|
|
31
|
+
readyConnectionId?: string;
|
|
32
|
+
admittedDescriptor?: ClientServerDiscoveryDescriptor;
|
|
33
|
+
liveness?: ServiceLivenessConnection;
|
|
34
|
+
admissionAttempt?: symbol;
|
|
35
|
+
}
|
|
20
36
|
export interface ZLinkFanoutConnectionCallbacks {
|
|
21
37
|
readonly onReady: () => void;
|
|
22
38
|
readonly onTerminated: (reason: 'disconnect' | 'deadline' | 'protocol') => void;
|
|
@@ -34,13 +50,18 @@ export declare class ZLinkChannelSocketRegistry {
|
|
|
34
50
|
private readonly monitoringAdapter?;
|
|
35
51
|
private readonly oneWayFailureSink?;
|
|
36
52
|
private readonly applicationJobQueue?;
|
|
53
|
+
[inspectRuntime](): Readonly<{
|
|
54
|
+
clientServerConnections: number;
|
|
55
|
+
fanoutConnections: number;
|
|
56
|
+
clientServerObservers: number;
|
|
57
|
+
}>;
|
|
37
58
|
private readonly clientDealers;
|
|
38
59
|
private readonly channelRouters;
|
|
39
60
|
private readonly publishers;
|
|
40
61
|
private readonly routeRouters;
|
|
41
62
|
private readonly routeMembers;
|
|
42
63
|
private readonly clientServerIdentities;
|
|
43
|
-
|
|
64
|
+
readonly clientServerConnections: Map<string, ClientServerPhysicalConnection>;
|
|
44
65
|
private readonly clientServerDiscovery;
|
|
45
66
|
private readonly clientServerReadyIdentities;
|
|
46
67
|
private readonly clientServerServerDescriptors;
|
|
@@ -137,9 +158,12 @@ export declare class ZLinkChannelSocketRegistry {
|
|
|
137
158
|
* the existing admission path.
|
|
138
159
|
*/
|
|
139
160
|
private restartClientServerAdmission;
|
|
140
|
-
|
|
161
|
+
applyClientServerDescriptorUpdate(connectionId: string, connection: {
|
|
162
|
+
readonly channelName: string;
|
|
163
|
+
readonly physicalConnectionId: symbol;
|
|
164
|
+
}, admission: ZLinkClientServerAdmission): void;
|
|
141
165
|
private ensureClientServerLivenessTimer;
|
|
142
|
-
|
|
166
|
+
drainSocketMonitors(): void;
|
|
143
167
|
private removeReadyConnection;
|
|
144
168
|
private requestClientServerLiveness;
|
|
145
169
|
private admitClientServerServerPeer;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkChannelSocketRegistry = void 0;
|
|
4
|
+
const internal_observation_1 = require("../internal-observation");
|
|
4
5
|
const disposal_1 = require("../disposal");
|
|
5
6
|
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
6
7
|
const node_crypto_1 = require("node:crypto");
|
|
@@ -35,6 +36,13 @@ class ZLinkChannelSocketRegistry {
|
|
|
35
36
|
monitoringAdapter;
|
|
36
37
|
oneWayFailureSink;
|
|
37
38
|
applicationJobQueue;
|
|
39
|
+
[internal_observation_1.inspectRuntime]() {
|
|
40
|
+
return Object.freeze({
|
|
41
|
+
clientServerConnections: this.clientServerConnections.size,
|
|
42
|
+
fanoutConnections: this.fanoutConnections.size,
|
|
43
|
+
clientServerObservers: this.clientServerDiscovery[internal_observation_1.inspectRuntime]().clientServerObservers
|
|
44
|
+
});
|
|
45
|
+
}
|
|
38
46
|
clientDealers = new Map();
|
|
39
47
|
channelRouters = new Map();
|
|
40
48
|
publishers = new Map();
|
|
@@ -1294,7 +1302,7 @@ class ZLinkChannelSocketRegistry {
|
|
|
1294
1302
|
applySocketConfig(router, routeChannel);
|
|
1295
1303
|
this.trackRouteMonitor(routerChannelId, router);
|
|
1296
1304
|
if ((routeChannel.manualConnections ?? []).length > 0) {
|
|
1297
|
-
for (const endpoint of routeChannel.manualConnections ?? []) {
|
|
1305
|
+
for (const endpoint of (0, RuntimeEndpointConnections_1.endpointConnections)(routeChannel, routeChannel.manualConnections ?? []).listConnections()) {
|
|
1298
1306
|
router.connect(endpoint);
|
|
1299
1307
|
}
|
|
1300
1308
|
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { RequestRuntime } from '../foundation/request-runtime';
|
|
2
|
+
import type { PendingOperation, OperationObserver } from '../foundation/operation-registry';
|
|
3
|
+
import { type ZLinkRequestResult } from '../messaging/request-result';
|
|
1
4
|
import { ZLinkFrameworkException } from '../../contracts';
|
|
2
5
|
import type { Message } from '../../contracts/Common/Message';
|
|
3
6
|
import type { ZLinkBackendMeshNode, ZLinkBackendSpot } from '../backend/contracts';
|
|
@@ -11,7 +14,7 @@ import type { ZLinkSpotRoutedSendOptions, ZLinkSpotRoutedRequestOptions } from '
|
|
|
11
14
|
import { type ZLinkChannelEnvelopeCodecRegistry } from './channel-envelope';
|
|
12
15
|
export interface ZLinkChannelClientTransport {
|
|
13
16
|
send(channelName: string, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): void | ZLinkSubmitResult | Promise<void | ZLinkSubmitResult>;
|
|
14
|
-
request<TReply>(channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void):
|
|
17
|
+
request<TReply>(channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): ZLinkRequestResult<TReply>;
|
|
15
18
|
tryPublish?(channelName: string, topic: string, packetName: string | undefined, event: unknown, metadata?: ReadonlyMap<string, string>): ZLinkSubmitResult;
|
|
16
19
|
publish(channelName: string, topic: string, packetName: string | undefined, event: unknown, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>): ZLinkSubmitResult | Promise<ZLinkSubmitResult>;
|
|
17
20
|
}
|
|
@@ -22,9 +25,9 @@ export interface ZLinkSpotPublisherClientTransport {
|
|
|
22
25
|
}
|
|
23
26
|
export interface ZLinkRouteClientTransport {
|
|
24
27
|
submit(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): void | ZLinkSubmitResult | Promise<void | ZLinkSubmitResult>;
|
|
25
|
-
request<TReply>(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void):
|
|
28
|
+
request<TReply>(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): ZLinkRequestResult<TReply>;
|
|
26
29
|
submitToChannel(meshName: string, channelName: string, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): void | ZLinkSubmitResult | Promise<void | ZLinkSubmitResult>;
|
|
27
|
-
requestToChannel<TReply>(meshName: string, channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void):
|
|
30
|
+
requestToChannel<TReply>(meshName: string, channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): ZLinkRequestResult<TReply>;
|
|
28
31
|
sendToSpot?(spotRouteTarget: ZLinkSpotRouteTarget, message: unknown, options: {
|
|
29
32
|
readonly packetName?: string;
|
|
30
33
|
readonly metadata?: ReadonlyMap<string, string>;
|
|
@@ -32,26 +35,27 @@ export interface ZLinkRouteClientTransport {
|
|
|
32
35
|
requestToSpot?<TReply = unknown>(spotRouteTarget: ZLinkSpotRouteTarget, request: unknown, options: {
|
|
33
36
|
readonly packetName?: string;
|
|
34
37
|
readonly timeoutMs?: number;
|
|
38
|
+
readonly requestOperation?: PendingOperation<unknown>;
|
|
35
39
|
readonly signal?: AbortSignal;
|
|
36
40
|
readonly onAdmitted?: () => void;
|
|
37
41
|
readonly metadata?: ReadonlyMap<string, string>;
|
|
38
|
-
}):
|
|
42
|
+
}): ZLinkRequestResult<TReply>;
|
|
39
43
|
}
|
|
40
44
|
interface ZLinkChannelTransportRuntime {
|
|
41
45
|
send(channelName: string, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
|
|
42
|
-
request<TReply>(channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void):
|
|
46
|
+
request<TReply>(channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): ZLinkRequestResult<TReply>;
|
|
43
47
|
tryPublish(channelName: string, topic: string, packetName: string | undefined, event: unknown, metadata?: ReadonlyMap<string, string>): ZLinkSubmitResult;
|
|
44
48
|
publish(channelName: string, topic: string, packetName: string | undefined, event: unknown, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
|
|
45
49
|
canRouteChannel(routerChannelId: string): boolean;
|
|
46
50
|
canRoutePacketChannel(routerChannelId: string): boolean;
|
|
47
51
|
routeSubmit(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
|
|
48
|
-
routeRequest<TReply>(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void): Promise<TReply>;
|
|
52
|
+
routeRequest<TReply>(routerChannelId: string, targetNodeRid: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): Promise<TReply>;
|
|
49
53
|
routeSendToSpot(spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<void>;
|
|
50
54
|
routeSendFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<void>;
|
|
51
|
-
routeRequestToSpot<TReply>(spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void): Promise<TReply>;
|
|
52
|
-
routeRequestFromSpotToSpot<TReply>(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<TReply>;
|
|
53
|
-
routeRequestRawFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<readonly Message[]>;
|
|
54
|
-
routeRequestRawToSpot(spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void): Promise<readonly Message[]>;
|
|
55
|
+
routeRequestToSpot<TReply>(spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>, destination?: OperationObserver<unknown, unknown>): Promise<TReply>;
|
|
56
|
+
routeRequestFromSpotToSpot<TReply>(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>, destination?: OperationObserver<unknown, unknown>): Promise<TReply>;
|
|
57
|
+
routeRequestRawFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): Promise<readonly Message[]>;
|
|
58
|
+
routeRequestRawToSpot(spotRouteTarget: ZLinkSpotRouteTarget, request: Message, timeoutMs: number | undefined, signal?: AbortSignal, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): Promise<readonly Message[]>;
|
|
55
59
|
}
|
|
56
60
|
export declare class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
57
61
|
private readonly manager;
|
|
@@ -63,21 +67,22 @@ export declare class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTrans
|
|
|
63
67
|
private readonly metrics?;
|
|
64
68
|
private readonly flowCreationEnabled;
|
|
65
69
|
private readonly outboundFlow;
|
|
70
|
+
private readonly requests;
|
|
66
71
|
constructor(manager: () => ZLinkChannelTransportRuntime | undefined, routeChannelPredicate?: ((routerChannelId: string) => boolean) | undefined, meshRuntime?: (() => {
|
|
67
72
|
readonly meshNode?: (meshName: string) => ZLinkBackendMeshNode | undefined;
|
|
68
73
|
readonly meshCompletionTable: (meshName: string) => ZLinkMeshCompletionTable | undefined;
|
|
69
|
-
} | undefined) | undefined, codecs?: ZLinkChannelEnvelopeCodecRegistry | undefined, manualNodeTarget?: ((meshName: string, targetNodeRid: string) => boolean | undefined) | undefined, localNodeSubmit?: ((meshName: string, sourceNodeRid: string, parts: readonly MessageLike[]) => ZLinkSubmitResult) | undefined, metrics?: ZLinkRuntimeMetrics | undefined, flowCreationEnabled?: () => boolean, outboundFlow?: () => ZLinkMessageFlowTracer | undefined);
|
|
74
|
+
} | undefined) | undefined, codecs?: ZLinkChannelEnvelopeCodecRegistry | undefined, manualNodeTarget?: ((meshName: string, targetNodeRid: string) => boolean | undefined) | undefined, localNodeSubmit?: ((meshName: string, sourceNodeRid: string, parts: readonly MessageLike[]) => ZLinkSubmitResult) | undefined, metrics?: ZLinkRuntimeMetrics | undefined, flowCreationEnabled?: () => boolean, outboundFlow?: () => ZLinkMessageFlowTracer | undefined, requests?: RequestRuntime);
|
|
70
75
|
canRouteChannel(routerChannelId: string): boolean;
|
|
71
76
|
canRoutePacketChannel(routerChannelId: string): boolean;
|
|
72
77
|
submit(meshName: string, targetNodeRid: string, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): ZLinkSubmitResult | Promise<ZLinkSubmitResult>;
|
|
73
78
|
submitInfrastructure(meshName: string, targetNodeRid: string, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): ZLinkSubmitResult | Promise<ZLinkSubmitResult>;
|
|
74
79
|
private submitNode;
|
|
75
|
-
request<TReply>(meshName: string, targetNodeRid: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void):
|
|
80
|
+
request<TReply>(meshName: string, targetNodeRid: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): ZLinkRequestResult<TReply>;
|
|
76
81
|
private requestScoped;
|
|
77
82
|
private traceNodeRequest;
|
|
78
83
|
submitToChannel(meshName: string, channelName: string, packetName: string | undefined, message: unknown, metadata?: ReadonlyMap<string, string>): Promise<ZLinkSubmitResult>;
|
|
79
84
|
private submitToChannelScoped;
|
|
80
|
-
requestToChannel<TReply>(meshName: string, channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void):
|
|
85
|
+
requestToChannel<TReply>(meshName: string, channelName: string, packetName: string | undefined, request: unknown, timeoutMs: number | undefined, signal?: AbortSignal, metadata?: ReadonlyMap<string, string>, onAdmitted?: () => void, requestOperation?: PendingOperation<unknown>): ZLinkRequestResult<TReply>;
|
|
81
86
|
private requestToChannelScoped;
|
|
82
87
|
sendToSpot(spotRouteTarget: ZLinkSpotRouteTarget, message: unknown, options: ZLinkSpotRoutedSendOptions): Promise<ZLinkSubmitResult>;
|
|
83
88
|
private sendToSpotScoped;
|
|
@@ -85,21 +90,24 @@ export declare class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTrans
|
|
|
85
90
|
readonly packetName?: string;
|
|
86
91
|
readonly metadata?: ReadonlyMap<string, string>;
|
|
87
92
|
}): Promise<ZLinkSubmitResult>;
|
|
88
|
-
requestToSpot<TReply = unknown>(spotRouteTarget: ZLinkSpotRouteTarget, request: unknown, options: ZLinkSpotRoutedRequestOptions):
|
|
93
|
+
requestToSpot<TReply = unknown>(spotRouteTarget: ZLinkSpotRouteTarget, request: unknown, options: ZLinkSpotRoutedRequestOptions, destination?: OperationObserver<unknown, unknown>): ZLinkRequestResult<TReply>;
|
|
89
94
|
private requestToSpotScoped;
|
|
90
95
|
requestFromSpotToSpot<TReply = unknown>(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, request: unknown, options: {
|
|
91
96
|
readonly packetName?: string;
|
|
92
97
|
readonly timeoutMs?: number;
|
|
98
|
+
readonly requestOperation?: PendingOperation<unknown>;
|
|
93
99
|
readonly signal?: AbortSignal;
|
|
94
100
|
readonly onAdmitted?: () => void;
|
|
95
|
-
}):
|
|
101
|
+
}, destination?: OperationObserver<unknown, unknown>): ZLinkRequestResult<TReply>;
|
|
96
102
|
requestRawFromSpotToSpot(sourceSpot: ZLinkBackendSpot, spotRouteTarget: ZLinkSpotRouteTarget, request: Message, options: {
|
|
97
103
|
readonly timeoutMs?: number;
|
|
104
|
+
readonly requestOperation?: PendingOperation<unknown>;
|
|
98
105
|
readonly signal?: AbortSignal;
|
|
99
106
|
readonly onAdmitted?: () => void;
|
|
100
107
|
}): Promise<readonly Message[]>;
|
|
101
108
|
requestRawToSpot(spotRouteTarget: ZLinkSpotRouteTarget, request: Message, options: {
|
|
102
109
|
readonly timeoutMs?: number;
|
|
110
|
+
readonly requestOperation?: PendingOperation<unknown>;
|
|
103
111
|
readonly signal?: AbortSignal;
|
|
104
112
|
readonly onAdmitted?: () => void;
|
|
105
113
|
}): Promise<readonly Message[]>;
|
|
@@ -111,7 +119,6 @@ export declare class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTrans
|
|
|
111
119
|
private requireMeshNode;
|
|
112
120
|
private completionTable;
|
|
113
121
|
private encodeMessage;
|
|
114
|
-
private waitForMeshReply;
|
|
115
122
|
private decodeMeshReply;
|
|
116
123
|
}
|
|
117
124
|
export declare function meshRequestFailure(meshName: string, result: number, nativeErrno: number): ZLinkFrameworkException;
|