@zlink-systems/framework 0.26.0 → 0.27.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/Common/CoreTypes.d.ts +6 -0
- package/dist/contracts/Common/CoreTypes.js +7 -0
- package/dist/contracts/Common/index.d.ts +1 -1
- package/dist/contracts/Common/index.js +0 -1
- package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
- package/dist/contracts/Configuration/InternalDefaults.js +9 -1
- package/dist/contracts/Configuration/Registration.d.ts +13 -2
- package/dist/contracts/Configuration/Registration.js +58 -36
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
- package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
- package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
- package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
- package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
- package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
- package/dist/contracts/Handlers/JsonContract.js +10 -4
- package/dist/contracts/Locations/Authority.d.ts +1 -1
- package/dist/contracts/Locations/Authority.js +3 -2
- package/dist/contracts/Locations/Options.js +1 -1
- package/dist/contracts/Locations/Stores.d.ts +12 -0
- package/dist/contracts/Locations/Stores.js +9 -0
- package/dist/contracts/Spots/Contracts.d.ts +1 -1
- package/dist/internal.d.ts +4 -0
- package/dist/internal.js +15 -1
- package/dist/nest-integration.d.ts +4 -2
- package/dist/nest-integration.js +14 -4
- package/dist/runtime/abort.d.ts +1 -0
- package/dist/runtime/abort.js +8 -5
- package/dist/runtime/activation-admission.d.ts +1 -2
- package/dist/runtime/activation-admission.js +2 -6
- package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
- package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
- package/dist/runtime/actors/actor-client.d.ts +2 -2
- package/dist/runtime/actors/actor-client.js +42 -143
- package/dist/runtime/actors/actor-context.d.ts +3 -5
- package/dist/runtime/actors/actor-context.js +13 -11
- package/dist/runtime/actors/actor-handoff.d.ts +4 -4
- package/dist/runtime/actors/actor-handoff.js +8 -8
- package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
- package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
- package/dist/runtime/actors/actor-local-native-join.js +83 -105
- package/dist/runtime/actors/actor-native-lookup.js +2 -8
- package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
- package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
- package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
- package/dist/runtime/actors/actor-remote-joiner.js +5 -9
- package/dist/runtime/actors/actor-remote-wire.js +5 -3
- package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
- package/dist/runtime/actors/actor-request-deadline.js +31 -0
- package/dist/runtime/actors/actor-retry-delay.js +2 -1
- package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
- package/dist/runtime/actors/actor-runtime-state.js +70 -187
- package/dist/runtime/actors/bound-session-wire.js +2 -7
- package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
- package/dist/runtime/actors/deferred-join-completion.js +1 -0
- package/dist/runtime/actors/index.d.ts +9 -7
- package/dist/runtime/actors/index.js +87 -69
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
- package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
- package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
- package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
- package/dist/runtime/admission.d.ts +2 -0
- package/dist/runtime/admission.js +7 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
- package/dist/runtime/backend/contracts/index.d.ts +6 -23
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
- package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +1 -1
- package/dist/runtime/backend/node/node-backend-adapter-support.js +16 -6
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
- package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
- package/dist/runtime/backend/node/node-raw-binding-port.js +40 -16
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +3 -2
- package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
- package/dist/runtime/backend/runtime-values.d.ts +4 -1
- package/dist/runtime/backend/runtime-values.js +2 -0
- package/dist/runtime/channels/channel-clients.d.ts +20 -8
- package/dist/runtime/channels/channel-clients.js +68 -52
- package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
- package/dist/runtime/channels/channel-envelope.js +47 -29
- package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
- package/dist/runtime/channels/channel-outbound-operations.js +9 -10
- package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
- package/dist/runtime/channels/channel-receive-loops.js +27 -6
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
- package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
- package/dist/runtime/channels/channel-runtime-manager.js +5 -2
- package/dist/runtime/channels/channel-socket-options.js +3 -2
- package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
- package/dist/runtime/channels/channel-socket-registry.js +248 -174
- package/dist/runtime/channels/channel-transports.d.ts +11 -17
- package/dist/runtime/channels/channel-transports.js +68 -47
- package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/client-server-location-runtime.js +10 -11
- package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
- package/dist/runtime/channels/client-server-service-wire.js +32 -11
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
- package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
- package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
- package/dist/runtime/channels/fanout-location-runtime.js +130 -72
- package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
- package/dist/runtime/channels/spot-direct-envelope.js +4 -3
- package/dist/runtime/channels/spot-node-route-transport.js +3 -2
- package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
- package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
- package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
- package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
- package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
- package/dist/runtime/diagnostics/flow-context.js +16 -2
- package/dist/runtime/diagnostics/index.d.ts +4 -2
- package/dist/runtime/diagnostics/index.js +14 -4
- package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
- package/dist/runtime/diagnostics/message-flow.js +10 -19
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
- package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
- package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
- package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
- package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
- package/dist/runtime/disposal.d.ts +5 -0
- package/dist/runtime/disposal.js +22 -0
- package/dist/runtime/execution/index.d.ts +12 -9
- package/dist/runtime/execution/index.js +58 -14
- package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
- package/dist/runtime/execution/serial-execution-queue.js +54 -15
- package/dist/runtime/execution/state-lane.d.ts +8 -1
- package/dist/runtime/execution/state-lane.js +118 -3
- package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
- package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
- package/dist/runtime/foundation/event-loop-resources.js +6 -119
- package/dist/runtime/foundation/operation-identity.d.ts +2 -0
- package/dist/runtime/foundation/operation-identity.js +9 -5
- package/dist/runtime/foundation/operation-registry.d.ts +5 -7
- package/dist/runtime/foundation/operation-registry.js +34 -44
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +62 -83
- package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
- package/dist/runtime/foundation/runtime-state-projections.js +8 -0
- package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
- package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
- package/dist/runtime/foundation/service-discovery-registry.js +22 -3
- package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
- package/dist/runtime/foundation/service-liveness-registry.js +2 -1
- package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
- package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
- package/dist/runtime/foundation/service-metadata-codec.js +3 -3
- package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
- package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
- package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
- package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
- package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
- package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
- package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
- package/dist/runtime/foundation/service-stateful-registry.js +10 -2
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
- package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
- package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
- package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
- package/dist/runtime/foundation/service-topology-registry.js +17 -32
- package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
- package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
- package/dist/runtime/foundation/service-wire-codec.js +10 -8
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
- package/dist/runtime/framework-errors-internal.d.ts +2 -1
- package/dist/runtime/framework-errors-internal.js +343 -122
- package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
- package/dist/runtime/handlers/handler-instance-scope.js +61 -74
- package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
- package/dist/runtime/host/actor-packet-relay.js +48 -91
- package/dist/runtime/host/actor-placement-coordinator.js +7 -5
- package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
- package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
- package/dist/runtime/host/actor-transfer-runtime.js +143 -176
- package/dist/runtime/host/application-job-queue.js +16 -33
- package/dist/runtime/host/bound-session-relay.js +1 -1
- package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
- package/dist/runtime/host/index.d.ts +14 -13
- package/dist/runtime/host/index.js +190 -157
- package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
- package/dist/runtime/host/instance-activation-authority.js +17 -45
- package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
- package/dist/runtime/host/location-runtime-owner.js +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
- package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
- package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
- package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
- package/dist/runtime/host/remote-bound-session-relay.js +7 -20
- package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
- package/dist/runtime/host/route-mesh-runtime.js +171 -252
- package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
- package/dist/runtime/host/runtime-shutdown.js +18 -21
- package/dist/runtime/host/service-relocation-control.js +6 -1
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
- package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
- package/dist/runtime/host/spot-address-transport.d.ts +2 -3
- package/dist/runtime/host/spot-address-transport.js +34 -136
- package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
- package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
- package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
- package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
- package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
- package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
- package/dist/runtime/locations/authority-key-codec.js +4 -3
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
- package/dist/runtime/locations/creation-operation-id.js +6 -4
- package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
- package/dist/runtime/locations/in-memory-authority-store.js +31 -15
- package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
- package/dist/runtime/locations/in-memory-location-store.js +17 -14
- package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
- package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
- package/dist/runtime/locations/key-codec.js +3 -2
- package/dist/runtime/locations/lease-tracker.d.ts +3 -5
- package/dist/runtime/locations/lease-tracker.js +7 -11
- package/dist/runtime/locations/lifecycle.d.ts +4 -9
- package/dist/runtime/locations/lifecycle.js +2 -31
- package/dist/runtime/locations/location-store-failure.d.ts +2 -0
- package/dist/runtime/locations/location-store-failure.js +7 -0
- package/dist/runtime/locations/location-store-pages.d.ts +3 -0
- package/dist/runtime/locations/location-store-pages.js +13 -0
- package/dist/runtime/locations/location-store-repository.d.ts +5 -7
- package/dist/runtime/locations/location-store-repository.js +303 -332
- package/dist/runtime/locations/relocation-blob.js +18 -5
- package/dist/runtime/locations/resolvers.d.ts +5 -5
- package/dist/runtime/locations/resolvers.js +37 -28
- package/dist/runtime/locations/runtime.d.ts +5 -4
- package/dist/runtime/locations/runtime.js +123 -92
- package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
- package/dist/runtime/locations/spot-location-claims.js +42 -1
- package/dist/runtime/messaging/payload-codec.js +26 -20
- package/dist/runtime/messaging/submission-result.d.ts +3 -0
- package/dist/runtime/messaging/submission-result.js +48 -0
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
- package/dist/runtime/spots/index.d.ts +14 -20
- package/dist/runtime/spots/index.js +302 -176
- package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
- package/dist/runtime/spots/spot-activation-registry.js +14 -50
- package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
- package/dist/runtime/spots/spot-activation-state.js +2 -2
- package/dist/runtime/spots/spot-activation.d.ts +3 -4
- package/dist/runtime/spots/spot-activation.js +49 -32
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
- package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
- package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
- package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
- package/dist/runtime/spots/spot-actor-membership.js +22 -45
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
- package/dist/runtime/spots/spot-context.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.js +9 -20
- package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
- package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
- package/dist/runtime/spots/spot-manager-public.js +5 -4
- package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
- package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
- package/dist/runtime/spots/spot-outbound.d.ts +4 -3
- package/dist/runtime/spots/spot-outbound.js +9 -8
- package/dist/runtime/spots/spot-remote-codec.js +5 -3
- package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
- package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
- package/dist/runtime/spots/spot-route-replies.js +3 -1
- package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
- package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
- package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
- package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
- package/dist/runtime/spots/spot-serial-executor.js +2 -2
- package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
- package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
- package/dist/runtime/spots/spot-timer.d.ts +3 -2
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
- package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
- package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
- package/dist/runtime/streams/bound-session-service.d.ts +7 -0
- package/dist/runtime/streams/bound-session-service.js +11 -1
- package/dist/runtime/streams/index.d.ts +14 -15
- package/dist/runtime/streams/index.js +20 -21
- package/dist/runtime/streams/managed-stream.d.ts +3 -0
- package/dist/runtime/streams/managed-stream.js +17 -8
- package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
- package/dist/runtime/streams/protocol.d.ts +6 -33
- package/dist/runtime/streams/protocol.js +38 -110
- package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
- package/dist/runtime/streams/session-actor-coordinator.js +12 -4
- package/dist/runtime/streams/session-calls.d.ts +1 -1
- package/dist/runtime/streams/session-calls.js +5 -4
- package/dist/runtime/streams/session-context.d.ts +6 -6
- package/dist/runtime/streams/session-context.js +22 -4
- package/dist/runtime/streams/session-requests.js +2 -1
- package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
- package/dist/runtime/streams/stream-frame-factory.js +2 -2
- package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
- package/dist/runtime/streams/stream-session-runtime.js +25 -33
- package/dist/runtime/workers/index.d.ts +2 -2
- package/dist/runtime/workers/index.js +5 -4
- package/package.json +3 -3
- package/src/contracts/Common/CoreTypes.ts +7 -0
- package/src/contracts/Common/index.ts +1 -1
- package/src/contracts/Configuration/InternalDefaults.ts +12 -0
- package/src/contracts/Configuration/Registration.ts +92 -48
- package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
- package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
- package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
- package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
- package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
- package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
- package/src/contracts/Handlers/JsonContract.ts +14 -4
- package/src/contracts/Locations/Authority.ts +7 -3
- package/src/contracts/Locations/Options.ts +1 -1
- package/src/contracts/Locations/Stores.ts +14 -0
- package/src/contracts/Spots/Contracts.ts +1 -1
- package/src/internal.ts +14 -0
- package/src/nest-integration.ts +28 -10
- package/src/runtime/abort.ts +6 -5
- package/src/runtime/activation-admission.ts +2 -8
- package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
- package/src/runtime/actors/actor-client.ts +77 -204
- package/src/runtime/actors/actor-context.ts +39 -33
- package/src/runtime/actors/actor-handoff.ts +24 -22
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
- package/src/runtime/actors/actor-local-native-join.ts +172 -174
- package/src/runtime/actors/actor-native-lookup.ts +2 -9
- package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
- package/src/runtime/actors/actor-remote-joiner.ts +9 -11
- package/src/runtime/actors/actor-remote-wire.ts +5 -3
- package/src/runtime/actors/actor-request-deadline.ts +49 -0
- package/src/runtime/actors/actor-retry-delay.ts +2 -1
- package/src/runtime/actors/actor-runtime-state.ts +85 -247
- package/src/runtime/actors/bound-session-wire.ts +2 -8
- package/src/runtime/actors/deferred-join-completion.ts +10 -6
- package/src/runtime/actors/index.ts +100 -79
- package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
- package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
- package/src/runtime/admission.ts +8 -1
- package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
- package/src/runtime/backend/contracts/index.ts +13 -29
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
- package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
- package/src/runtime/backend/node/node-backend-adapter-support.ts +23 -6
- package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
- package/src/runtime/backend/node/node-raw-binding-port.ts +41 -20
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +3 -2
- package/src/runtime/backend/raw-binding-port.ts +1 -1
- package/src/runtime/backend/runtime-values.ts +4 -1
- package/src/runtime/channels/channel-clients.ts +132 -85
- package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
- package/src/runtime/channels/channel-envelope.ts +58 -29
- package/src/runtime/channels/channel-outbound-operations.ts +10 -23
- package/src/runtime/channels/channel-receive-loops.ts +39 -7
- package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
- package/src/runtime/channels/channel-runtime-manager.ts +6 -2
- package/src/runtime/channels/channel-socket-options.ts +8 -2
- package/src/runtime/channels/channel-socket-registry.ts +301 -192
- package/src/runtime/channels/channel-transports.ts +161 -112
- package/src/runtime/channels/client-server-location-runtime.ts +17 -17
- package/src/runtime/channels/client-server-service-wire.ts +40 -12
- package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
- package/src/runtime/channels/fanout-location-runtime.ts +172 -91
- package/src/runtime/channels/spot-direct-envelope.ts +1 -1
- package/src/runtime/channels/spot-node-route-transport.ts +5 -2
- package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
- package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
- package/src/runtime/diagnostics/flow-context.ts +16 -2
- package/src/runtime/diagnostics/index.ts +27 -17
- package/src/runtime/diagnostics/message-flow.ts +15 -25
- package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
- package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
- package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
- package/src/runtime/disposal.ts +19 -0
- package/src/runtime/execution/index.ts +60 -20
- package/src/runtime/execution/serial-execution-queue.ts +131 -18
- package/src/runtime/execution/state-lane.ts +142 -4
- package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
- package/src/runtime/foundation/event-loop-resources.ts +5 -122
- package/src/runtime/foundation/operation-identity.ts +11 -5
- package/src/runtime/foundation/operation-registry.ts +33 -50
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +110 -111
- package/src/runtime/foundation/runtime-state-projections.ts +9 -1
- package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
- package/src/runtime/foundation/service-discovery-registry.ts +32 -3
- package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
- package/src/runtime/foundation/service-liveness-registry.ts +2 -1
- package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
- package/src/runtime/foundation/service-metadata-codec.ts +2 -2
- package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
- package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
- package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
- package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
- package/src/runtime/foundation/service-stateful-registry.ts +14 -2
- package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
- package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
- package/src/runtime/foundation/service-topology-registry.ts +23 -32
- package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
- package/src/runtime/foundation/service-wire-codec.ts +15 -8
- package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
- package/src/runtime/framework-errors-internal.ts +380 -134
- package/src/runtime/handlers/handler-instance-scope.ts +68 -95
- package/src/runtime/host/actor-packet-relay.ts +57 -147
- package/src/runtime/host/actor-placement-coordinator.ts +8 -5
- package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
- package/src/runtime/host/actor-transfer-runtime.ts +180 -260
- package/src/runtime/host/application-job-queue.ts +28 -34
- package/src/runtime/host/bound-session-relay.ts +1 -2
- package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
- package/src/runtime/host/index.ts +327 -296
- package/src/runtime/host/instance-activation-authority.ts +89 -109
- package/src/runtime/host/location-runtime-owner.ts +4 -2
- package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
- package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
- package/src/runtime/host/remote-bound-session-relay.ts +8 -41
- package/src/runtime/host/route-mesh-runtime.ts +228 -271
- package/src/runtime/host/runtime-shutdown.ts +17 -21
- package/src/runtime/host/service-relocation-control.ts +14 -1
- package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
- package/src/runtime/host/spot-address-transport.ts +73 -195
- package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
- package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
- package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
- package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
- package/src/runtime/locations/authority-key-codec.ts +7 -3
- package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
- package/src/runtime/locations/creation-operation-id.ts +6 -3
- package/src/runtime/locations/domain-store-contract.ts +12 -3
- package/src/runtime/locations/in-memory-authority-store.ts +44 -15
- package/src/runtime/locations/in-memory-location-store.ts +50 -39
- package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
- package/src/runtime/locations/key-codec.ts +3 -2
- package/src/runtime/locations/lease-tracker.ts +8 -14
- package/src/runtime/locations/lifecycle.ts +13 -43
- package/src/runtime/locations/location-store-failure.ts +4 -0
- package/src/runtime/locations/location-store-pages.ts +18 -0
- package/src/runtime/locations/location-store-repository.ts +450 -478
- package/src/runtime/locations/relocation-blob.ts +17 -6
- package/src/runtime/locations/resolvers.ts +75 -49
- package/src/runtime/locations/runtime.ts +220 -110
- package/src/runtime/locations/spot-location-claims.ts +58 -1
- package/src/runtime/messaging/payload-codec.ts +35 -24
- package/src/runtime/messaging/submission-result.ts +57 -1
- 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/formal-remote-actor-transfer-registry.ts +4 -1
- package/src/runtime/spots/index.ts +433 -229
- package/src/runtime/spots/spot-activation-registry.ts +30 -69
- package/src/runtime/spots/spot-activation-state.ts +2 -2
- package/src/runtime/spots/spot-activation.ts +67 -37
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
- package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
- package/src/runtime/spots/spot-actor-membership.ts +40 -72
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
- package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
- package/src/runtime/spots/spot-context.ts +3 -3
- package/src/runtime/spots/spot-entry-activation.ts +13 -30
- package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
- package/src/runtime/spots/spot-manager-public.ts +21 -17
- package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
- package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
- package/src/runtime/spots/spot-outbound.ts +45 -23
- package/src/runtime/spots/spot-remote-codec.ts +7 -3
- package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
- package/src/runtime/spots/spot-route-replies.ts +6 -4
- package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
- package/src/runtime/spots/spot-runtime-ports.ts +5 -27
- package/src/runtime/spots/spot-serial-executor.ts +2 -2
- package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
- package/src/runtime/spots/spot-timer.ts +3 -2
- package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
- package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
- package/src/runtime/streams/bound-session-service.ts +21 -1
- package/src/runtime/streams/index.ts +76 -64
- package/src/runtime/streams/managed-stream.ts +29 -10
- package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
- package/src/runtime/streams/protocol.ts +34 -88
- package/src/runtime/streams/session-actor-coordinator.ts +17 -5
- package/src/runtime/streams/session-calls.ts +6 -5
- package/src/runtime/streams/session-context.ts +54 -10
- package/src/runtime/streams/session-requests.ts +2 -1
- package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
- package/src/runtime/streams/stream-frame-factory.ts +2 -3
- package/src/runtime/streams/stream-session-runtime.ts +57 -59
- package/src/runtime/workers/index.ts +13 -12
- package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
- package/dist/runtime/actors/post-commit-actor-location.js +0 -72
- package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
- package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
- package/src/runtime/actors/post-commit-actor-location.ts +0 -121
- package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
|
@@ -1,45 +1,65 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ZLinkFrameworkInternalErrorKind,
|
|
3
|
-
createInternalFrameworkException,
|
|
4
|
-
internalFrameworkErrorKind,
|
|
5
|
-
internalFrameworkErrorKindFromWireReply,
|
|
6
|
-
isCanonicalWireReplyTerminal
|
|
7
|
-
} from '../framework-errors-internal';
|
|
8
|
-
import { ZLinkBufferMessage } from '../backend/runtime-message';
|
|
9
|
-
import {
|
|
10
|
-
RequestResult,
|
|
11
|
-
SubmitResult,
|
|
12
|
-
isZLinkBackendResultError,
|
|
13
|
-
type ZLinkBackendMessageLike as MessageLike
|
|
14
|
-
} from '../backend/runtime-values';
|
|
15
|
-
import type { ZLinkBackendMeshNode, ZLinkBackendSpot } from '../backend/contracts';
|
|
16
|
-
import type { ZLinkFrameworkInternalErrorKind as ZLinkFrameworkInternalErrorKindType } from '../framework-errors-internal';
|
|
17
1
|
import { ZLinkFrameworkException } from '../../contracts';
|
|
18
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
19
|
-
import {
|
|
20
|
-
import { ZLinkConfigurationException } from '../configuration';
|
|
21
|
-
import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
|
|
3
|
+
import { DEFAULT_REQUEST_TIMEOUT_MS } from '../../contracts/Configuration/Registration';
|
|
22
4
|
import { ZLinkSpotKind } from '../../contracts/Spots';
|
|
23
5
|
import { throwIfAborted } from '../abort';
|
|
24
|
-
import type {
|
|
6
|
+
import type { ZLinkBackendMeshNode, ZLinkBackendSpot } from '../backend/contracts';
|
|
25
7
|
import {
|
|
26
8
|
closeMeshCompletion,
|
|
27
9
|
type ZLinkMeshCompletion,
|
|
28
10
|
type ZLinkMeshCompletionTable
|
|
29
11
|
} from '../backend/mesh-completion-table';
|
|
30
|
-
import {
|
|
12
|
+
import { ZLinkBufferMessage } from '../backend/runtime-message';
|
|
31
13
|
import {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
type
|
|
35
|
-
|
|
36
|
-
} from '
|
|
14
|
+
RequestResult,
|
|
15
|
+
isZLinkBackendResultError,
|
|
16
|
+
type ZLinkBackendMessageLike as MessageLike
|
|
17
|
+
} from '../backend/runtime-values';
|
|
18
|
+
import { ZLinkConfigurationException } from '../configuration';
|
|
19
|
+
import type { ZLinkRuntimeMetrics } from '../diagnostics';
|
|
20
|
+
import { runWithOutboundFlow } from '../diagnostics/flow-context';
|
|
21
|
+
import { flowIfEnabled, type ZLinkMessageFlowTracer } from '../diagnostics';
|
|
22
|
+
import {
|
|
23
|
+
ZLinkDispatchErrorSurface,
|
|
24
|
+
ZLinkDispatchMessageKind,
|
|
25
|
+
ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome,
|
|
26
|
+
type ZLinkRuntimeMessageFlowResult
|
|
27
|
+
} from '../../contracts/Dispatch/ZLinkDispatchOptions';
|
|
28
|
+
import { isRemoteChannelErrorReply, requestTerminalResult } from './channel-outbound-operations';
|
|
29
|
+
import { ServiceStaleGenerationError } from '../foundation/service-stateful-registry';
|
|
37
30
|
import type {
|
|
38
31
|
ServiceDirectSpotRouteFence,
|
|
39
32
|
ServiceInstanceRouteFence
|
|
40
33
|
} from '../foundation/service-stateful-wire-codec';
|
|
41
|
-
import {
|
|
42
|
-
|
|
34
|
+
import {
|
|
35
|
+
type ZLinkFrameworkInternalErrorKind as ZLinkFrameworkInternalErrorKindType,
|
|
36
|
+
ZLinkFrameworkInternalErrorKind,
|
|
37
|
+
createInternalFrameworkException,
|
|
38
|
+
internalFrameworkErrorKind,
|
|
39
|
+
internalFrameworkErrorKindFromWireReply,
|
|
40
|
+
isCanonicalWireReplyTerminal,
|
|
41
|
+
requestResultToPublicErrorKind
|
|
42
|
+
} from '../framework-errors-internal';
|
|
43
|
+
|
|
44
|
+
import {
|
|
45
|
+
classifySubmitResult,
|
|
46
|
+
submitToRequestResult,
|
|
47
|
+
ZLinkSubmitStatus,
|
|
48
|
+
type ZLinkSubmitResult
|
|
49
|
+
} from '../messaging/submission-result';
|
|
50
|
+
import { routingIdsEqual, toBackendRoutingId } from '../routing-id';
|
|
51
|
+
import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
|
|
52
|
+
import type {
|
|
53
|
+
ZLinkSpotRoutedSendOptions,
|
|
54
|
+
ZLinkSpotRoutedRequestOptions
|
|
55
|
+
} from '../spots/spot-outbound';
|
|
56
|
+
import {
|
|
57
|
+
ZLinkChannelMessageKind,
|
|
58
|
+
decodeChannelReply,
|
|
59
|
+
encodeChannelEnvelopeParts,
|
|
60
|
+
newChannelCorrelationId,
|
|
61
|
+
type ZLinkChannelEnvelopeCodecRegistry
|
|
62
|
+
} from './channel-envelope';
|
|
43
63
|
|
|
44
64
|
export interface ZLinkChannelClientTransport {
|
|
45
65
|
send(
|
|
@@ -278,7 +298,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
278
298
|
parts: readonly MessageLike[]
|
|
279
299
|
) => ZLinkSubmitResult,
|
|
280
300
|
private readonly metrics?: ZLinkRuntimeMetrics,
|
|
281
|
-
private readonly flowCreationEnabled: () => boolean = () => true
|
|
301
|
+
private readonly flowCreationEnabled: () => boolean = () => true,
|
|
302
|
+
private readonly outboundFlow: () => ZLinkMessageFlowTracer | undefined = () => undefined
|
|
282
303
|
) {}
|
|
283
304
|
|
|
284
305
|
canRouteChannel(routerChannelId: string): boolean {
|
|
@@ -422,33 +443,92 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
422
443
|
metadata
|
|
423
444
|
);
|
|
424
445
|
}
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
446
|
+
const correlationId = newChannelCorrelationId();
|
|
447
|
+
try {
|
|
448
|
+
throwIfAborted(signal);
|
|
449
|
+
if (node.isObjectClientNodeDirectTarget?.(toBackendRoutingId(targetNodeRid)) === true) {
|
|
450
|
+
throw createInternalFrameworkException(
|
|
451
|
+
ZLinkFrameworkInternalErrorKind.RequestTargetNotFound,
|
|
452
|
+
`MeshNode '${meshName}' target '${targetNodeRid}' is an Object Client.`
|
|
453
|
+
);
|
|
454
|
+
}
|
|
455
|
+
const parts = this.encodeMessage(
|
|
456
|
+
ZLinkChannelMessageKind.Request,
|
|
457
|
+
meshName,
|
|
458
|
+
packetName,
|
|
459
|
+
request,
|
|
460
|
+
timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS,
|
|
461
|
+
metadata,
|
|
462
|
+
correlationId
|
|
463
|
+
);
|
|
464
|
+
const completion = await this.submitRequestOperation(
|
|
465
|
+
meshName,
|
|
466
|
+
timeoutMs,
|
|
467
|
+
signal,
|
|
468
|
+
`MeshNode '${meshName}' request to node '${targetNodeRid}'`,
|
|
469
|
+
(remainingTimeoutMs) => {
|
|
470
|
+
const operationId = node.requestToNode(toBackendRoutingId(targetNodeRid), parts, {
|
|
471
|
+
flags: 1,
|
|
472
|
+
timeoutMs: remainingTimeoutMs
|
|
473
|
+
});
|
|
474
|
+
this.traceNodeRequest(
|
|
475
|
+
ZLinkMessageFlowOutcome.Sent,
|
|
476
|
+
undefined,
|
|
477
|
+
meshName,
|
|
478
|
+
targetNodeRid,
|
|
479
|
+
packetName,
|
|
480
|
+
correlationId
|
|
481
|
+
);
|
|
482
|
+
return operationId;
|
|
483
|
+
}
|
|
484
|
+
);
|
|
485
|
+
const reply = this.decodeMeshReply<TReply>(meshName, completion);
|
|
486
|
+
this.traceNodeRequest(
|
|
487
|
+
ZLinkMessageFlowOutcome.ReplyReceived,
|
|
488
|
+
'succeeded',
|
|
489
|
+
meshName,
|
|
490
|
+
targetNodeRid,
|
|
491
|
+
packetName,
|
|
492
|
+
correlationId
|
|
430
493
|
);
|
|
494
|
+
return reply;
|
|
495
|
+
} catch (error) {
|
|
496
|
+
if (!isRemoteChannelErrorReply(error)) {
|
|
497
|
+
this.traceNodeRequest(
|
|
498
|
+
ZLinkMessageFlowOutcome.ReplyReceived,
|
|
499
|
+
requestTerminalResult(error, signal),
|
|
500
|
+
meshName,
|
|
501
|
+
targetNodeRid,
|
|
502
|
+
packetName,
|
|
503
|
+
correlationId,
|
|
504
|
+
error
|
|
505
|
+
);
|
|
506
|
+
}
|
|
507
|
+
throw error;
|
|
431
508
|
}
|
|
432
|
-
|
|
433
|
-
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
private traceNodeRequest(
|
|
512
|
+
outcome: ZLinkMessageFlowOutcome,
|
|
513
|
+
result: ZLinkRuntimeMessageFlowResult | undefined,
|
|
514
|
+
meshName: string,
|
|
515
|
+
targetRid: string,
|
|
516
|
+
packetName: string | undefined,
|
|
517
|
+
correlationId: string,
|
|
518
|
+
error?: unknown
|
|
519
|
+
): void {
|
|
520
|
+
if (!this.flowCreationEnabled()) return;
|
|
521
|
+
flowIfEnabled(this.outboundFlow(), outcome, result)?.trace({
|
|
522
|
+
outcome,
|
|
523
|
+
result,
|
|
524
|
+
surface: ZLinkDispatchErrorSurface.Node,
|
|
525
|
+
messageKind: ZLinkDispatchMessageKind.Request,
|
|
434
526
|
meshName,
|
|
527
|
+
targetRid,
|
|
435
528
|
packetName,
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
);
|
|
440
|
-
const completion = await this.submitRequestOperation(
|
|
441
|
-
meshName,
|
|
442
|
-
timeoutMs,
|
|
443
|
-
signal,
|
|
444
|
-
`MeshNode '${meshName}' request to node '${targetNodeRid}'`,
|
|
445
|
-
(remainingTimeoutMs) =>
|
|
446
|
-
node.requestToNode(toBackendRoutingId(targetNodeRid), parts, {
|
|
447
|
-
flags: 1,
|
|
448
|
-
timeoutMs: remainingTimeoutMs
|
|
449
|
-
})
|
|
450
|
-
);
|
|
451
|
-
return this.decodeMeshReply(meshName, completion);
|
|
529
|
+
correlationId,
|
|
530
|
+
...(error instanceof Error ? { errorType: error.name, errorMessage: error.message } : {})
|
|
531
|
+
});
|
|
452
532
|
}
|
|
453
533
|
|
|
454
534
|
submitToChannel(
|
|
@@ -534,7 +614,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
534
614
|
channelName,
|
|
535
615
|
packetName,
|
|
536
616
|
request,
|
|
537
|
-
timeoutMs ??
|
|
617
|
+
timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS,
|
|
538
618
|
metadata
|
|
539
619
|
);
|
|
540
620
|
const metric = this.metrics?.startRequest(meshName, 'channel');
|
|
@@ -568,7 +648,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
568
648
|
remainingTimeoutMs: number
|
|
569
649
|
) => ReturnType<Parameters<ZLinkMeshCompletionTable['submit']>[0]>
|
|
570
650
|
): Promise<ZLinkMeshCompletion> {
|
|
571
|
-
const effectiveTimeoutMs = Math.max(1, timeoutMs ??
|
|
651
|
+
const effectiveTimeoutMs = Math.max(1, timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS);
|
|
572
652
|
const deadlineMs = performance.now() + effectiveTimeoutMs;
|
|
573
653
|
const remainingTimeoutMs = deadlineMs - performance.now();
|
|
574
654
|
if (remainingTimeoutMs <= 0) {
|
|
@@ -590,12 +670,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
590
670
|
sendToSpot(
|
|
591
671
|
spotRouteTarget: ZLinkSpotRouteTarget,
|
|
592
672
|
message: unknown,
|
|
593
|
-
options:
|
|
594
|
-
readonly packetName?: string;
|
|
595
|
-
readonly timeoutMs?: number;
|
|
596
|
-
readonly signal?: AbortSignal;
|
|
597
|
-
readonly metadata?: ReadonlyMap<string, string>;
|
|
598
|
-
}
|
|
673
|
+
options: ZLinkSpotRoutedSendOptions
|
|
599
674
|
): Promise<ZLinkSubmitResult> {
|
|
600
675
|
return runWithOutboundFlow(this.flowCreationEnabled(), () =>
|
|
601
676
|
this.sendToSpotScoped(spotRouteTarget, message, options)
|
|
@@ -605,12 +680,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
605
680
|
private async sendToSpotScoped(
|
|
606
681
|
spotRouteTarget: ZLinkSpotRouteTarget,
|
|
607
682
|
message: unknown,
|
|
608
|
-
options:
|
|
609
|
-
readonly packetName?: string;
|
|
610
|
-
readonly timeoutMs?: number;
|
|
611
|
-
readonly signal?: AbortSignal;
|
|
612
|
-
readonly metadata?: ReadonlyMap<string, string>;
|
|
613
|
-
}
|
|
683
|
+
options: ZLinkSpotRoutedSendOptions
|
|
614
684
|
): Promise<ZLinkSubmitResult> {
|
|
615
685
|
const node = this.meshNode(spotRouteTarget.routerChannelId);
|
|
616
686
|
if (node === undefined) {
|
|
@@ -646,7 +716,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
646
716
|
instanceSpotRouteFence(spotRouteTarget),
|
|
647
717
|
encoded,
|
|
648
718
|
undefined,
|
|
649
|
-
options.metadata
|
|
719
|
+
options.metadata,
|
|
720
|
+
options.instanceSpot
|
|
650
721
|
)
|
|
651
722
|
);
|
|
652
723
|
}
|
|
@@ -696,12 +767,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
696
767
|
requestToSpot<TReply = unknown>(
|
|
697
768
|
spotRouteTarget: ZLinkSpotRouteTarget,
|
|
698
769
|
request: unknown,
|
|
699
|
-
options:
|
|
700
|
-
readonly packetName?: string;
|
|
701
|
-
readonly timeoutMs?: number;
|
|
702
|
-
readonly signal?: AbortSignal;
|
|
703
|
-
readonly metadata?: ReadonlyMap<string, string>;
|
|
704
|
-
}
|
|
770
|
+
options: ZLinkSpotRoutedRequestOptions
|
|
705
771
|
): Promise<TReply> {
|
|
706
772
|
return runWithOutboundFlow(this.flowCreationEnabled(), () =>
|
|
707
773
|
this.requestToSpotScoped<TReply>(spotRouteTarget, request, options)
|
|
@@ -711,12 +777,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
711
777
|
private async requestToSpotScoped<TReply = unknown>(
|
|
712
778
|
spotRouteTarget: ZLinkSpotRouteTarget,
|
|
713
779
|
request: unknown,
|
|
714
|
-
options:
|
|
715
|
-
readonly packetName?: string;
|
|
716
|
-
readonly timeoutMs?: number;
|
|
717
|
-
readonly signal?: AbortSignal;
|
|
718
|
-
readonly metadata?: ReadonlyMap<string, string>;
|
|
719
|
-
}
|
|
780
|
+
options: ZLinkSpotRoutedRequestOptions
|
|
720
781
|
): Promise<TReply> {
|
|
721
782
|
const meshName = spotRouteTarget.routerChannelId;
|
|
722
783
|
const node = this.meshNode(meshName);
|
|
@@ -754,7 +815,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
754
815
|
encoded,
|
|
755
816
|
options.timeoutMs,
|
|
756
817
|
undefined,
|
|
757
|
-
options.metadata
|
|
818
|
+
options.metadata,
|
|
819
|
+
options.instanceSpot
|
|
758
820
|
)
|
|
759
821
|
: node
|
|
760
822
|
.entrySpot()
|
|
@@ -967,7 +1029,8 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
967
1029
|
packetName: string | undefined,
|
|
968
1030
|
message: unknown,
|
|
969
1031
|
timeoutMs?: number,
|
|
970
|
-
metadata?: ReadonlyMap<string, string
|
|
1032
|
+
metadata?: ReadonlyMap<string, string>,
|
|
1033
|
+
correlationId?: string
|
|
971
1034
|
): readonly MessageLike[] {
|
|
972
1035
|
return encodeChannelEnvelopeParts(
|
|
973
1036
|
kind,
|
|
@@ -977,7 +1040,7 @@ export class ZLinkRuntimeRouteTransport implements ZLinkRouteClientTransport {
|
|
|
977
1040
|
timeoutMs,
|
|
978
1041
|
undefined,
|
|
979
1042
|
this.codecs,
|
|
980
|
-
|
|
1043
|
+
correlationId,
|
|
981
1044
|
this.flowCreationEnabled(),
|
|
982
1045
|
metadata
|
|
983
1046
|
);
|
|
@@ -1021,7 +1084,7 @@ function directSpotRouteFence(
|
|
|
1021
1084
|
target.authorityStoreVersion === undefined
|
|
1022
1085
|
) {
|
|
1023
1086
|
throw createInternalFrameworkException(
|
|
1024
|
-
ZLinkFrameworkInternalErrorKind.
|
|
1087
|
+
ZLinkFrameworkInternalErrorKind.RouteNotConnected,
|
|
1025
1088
|
`Spot '${String(target.spotId)}' has no complete Ready authority fence.`
|
|
1026
1089
|
);
|
|
1027
1090
|
}
|
|
@@ -1065,24 +1128,7 @@ function instanceSpotRouteFence(target: ZLinkSpotRouteTarget): ServiceInstanceRo
|
|
|
1065
1128
|
}
|
|
1066
1129
|
|
|
1067
1130
|
function mapMeshSubmitResult(result: number): ZLinkSubmitResult {
|
|
1068
|
-
|
|
1069
|
-
case SubmitResult.Ok:
|
|
1070
|
-
return { status: ZLinkSubmitStatus.Submitted };
|
|
1071
|
-
case SubmitResult.Backpressured:
|
|
1072
|
-
case SubmitResult.NotAdmitted:
|
|
1073
|
-
return { status: ZLinkSubmitStatus.Backpressured };
|
|
1074
|
-
case SubmitResult.NotFound:
|
|
1075
|
-
return { status: ZLinkSubmitStatus.TargetNotFound };
|
|
1076
|
-
case SubmitResult.NotConnected:
|
|
1077
|
-
return { status: ZLinkSubmitStatus.RouteNotConnected };
|
|
1078
|
-
case SubmitResult.Terminated:
|
|
1079
|
-
return { status: ZLinkSubmitStatus.Shutdown };
|
|
1080
|
-
default:
|
|
1081
|
-
throw createInternalFrameworkException(
|
|
1082
|
-
ZLinkFrameworkInternalErrorKind.RequestFailed,
|
|
1083
|
-
`Mesh submission failed with result ${result}.`
|
|
1084
|
-
);
|
|
1085
|
-
}
|
|
1131
|
+
return classifySubmitResult(result, 'Mesh submission');
|
|
1086
1132
|
}
|
|
1087
1133
|
|
|
1088
1134
|
function mapMeshSubmissionError(error: unknown, operation: string): Error {
|
|
@@ -1103,18 +1149,21 @@ function mapMeshSubmissionError(error: unknown, operation: string): Error {
|
|
|
1103
1149
|
);
|
|
1104
1150
|
}
|
|
1105
1151
|
if (isZLinkBackendResultError(error)) {
|
|
1106
|
-
const
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1152
|
+
const terminal =
|
|
1153
|
+
error.operation === 'request'
|
|
1154
|
+
? error.result
|
|
1155
|
+
: submitToRequestResult(error.result, error.phase);
|
|
1156
|
+
if (terminal === RequestResult.NotFound) {
|
|
1157
|
+
return createInternalFrameworkException(
|
|
1158
|
+
ZLinkFrameworkInternalErrorKind.RequestTargetNotFound,
|
|
1159
|
+
`${operation} failed with result ${error.result}.`,
|
|
1160
|
+
false,
|
|
1161
|
+
error
|
|
1162
|
+
);
|
|
1163
|
+
}
|
|
1164
|
+
return new ZLinkFrameworkException(
|
|
1165
|
+
requestResultToPublicErrorKind(terminal),
|
|
1116
1166
|
`${operation} failed with result ${error.result}.`,
|
|
1117
|
-
retriable,
|
|
1118
1167
|
error
|
|
1119
1168
|
);
|
|
1120
1169
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Message } from '../../contracts/Common/Message';
|
|
2
|
+
import { ZLINK_DEFAULT_PUBLIC_WEIGHT } from '../../contracts/Configuration/RegistrationBuilderPolicy';
|
|
1
3
|
import {
|
|
2
4
|
ZLinkFrameworkRuntimeState,
|
|
3
5
|
ZLinkLocationWriteIntent,
|
|
@@ -5,26 +7,28 @@ import {
|
|
|
5
7
|
type ZLinkClientServerServerDescriptor,
|
|
6
8
|
type ZLinkLocationOwnerToken
|
|
7
9
|
} from '../../contracts/Locations';
|
|
8
|
-
import type { ZLinkClientServerLocationStore } from '../locations/internal-store-contracts';
|
|
9
10
|
import {
|
|
10
11
|
zlinkRuntimeDefaultLocationOptions,
|
|
11
12
|
type ZLinkLocationOptionOverrides
|
|
12
13
|
} from '../../contracts/Locations/Options';
|
|
13
|
-
import
|
|
14
|
-
import { ZLinkConfigurationException } from '../configuration';
|
|
15
|
-
import type { ZLinkLocationRuntime, ZLinkLocationRuntimeStores } from '../locations';
|
|
16
|
-
import { ZLinkChannelSocketRegistry } from './channel-socket-registry';
|
|
14
|
+
import { ZLINK_PROVIDER_MAX_PAGE_SIZE } from '../../contracts/Locations/Stores';
|
|
17
15
|
import type { ZLinkBackendDealerSocket } from '../backend/contracts';
|
|
18
16
|
import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
|
|
19
|
-
import
|
|
17
|
+
import { isBackendRequestTimeoutError } from '../backend/runtime-values';
|
|
18
|
+
import { type ZLinkFrameworkRegistration, ZLinkConfigurationException } from '../configuration';
|
|
19
|
+
|
|
20
|
+
import { ZLinkStateLane } from '../execution/state-lane';
|
|
21
|
+
import { discoveryAvailabilityForRuntimeState } from '../foundation/runtime-state-projections';
|
|
22
|
+
import type { ZLinkLocationRuntime, ZLinkLocationRuntimeStores } from '../locations';
|
|
23
|
+
import type { ZLinkClientServerLocationStore } from '../locations/internal-store-contracts';
|
|
24
|
+
import { ZLinkChannelSocketRegistry } from './channel-socket-registry';
|
|
20
25
|
import {
|
|
21
26
|
decodeClientServerControl,
|
|
27
|
+
DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT,
|
|
22
28
|
encodeClientServerHello,
|
|
29
|
+
normalizeClientServerMessageLimit,
|
|
23
30
|
type ZLinkClientServerAdmission
|
|
24
31
|
} from './client-server-service-wire';
|
|
25
|
-
import { discoveryAvailabilityForRuntimeState } from '../foundation/runtime-state-projections';
|
|
26
|
-
import { ZLinkStateLane } from '../execution/state-lane';
|
|
27
|
-
import { isBackendRequestTimeoutError } from '../backend/runtime-values';
|
|
28
32
|
|
|
29
33
|
interface ActiveClientServerTarget {
|
|
30
34
|
descriptor: ZLinkClientServerServerDescriptor;
|
|
@@ -170,7 +174,7 @@ export class ZLinkClientServerLocationRuntime {
|
|
|
170
174
|
lifecycleGeneration: identity.lifecycleGeneration,
|
|
171
175
|
descriptorRevision: 1n,
|
|
172
176
|
endpoint: identity.endpoint,
|
|
173
|
-
weight: channel.server.weight ??
|
|
177
|
+
weight: channel.server.weight ?? ZLINK_DEFAULT_PUBLIC_WEIGHT,
|
|
174
178
|
state: ZLinkFrameworkRuntimeState.Serving,
|
|
175
179
|
securityIdentity: 'default',
|
|
176
180
|
ownerId: owner.ownerId,
|
|
@@ -250,7 +254,7 @@ export class ZLinkClientServerLocationRuntime {
|
|
|
250
254
|
do {
|
|
251
255
|
const page = await this.store.listClientServers(
|
|
252
256
|
channelName,
|
|
253
|
-
{ pageSize:
|
|
257
|
+
{ pageSize: ZLINK_PROVIDER_MAX_PAGE_SIZE, continuationToken },
|
|
254
258
|
signal
|
|
255
259
|
);
|
|
256
260
|
rows.push(...page.items);
|
|
@@ -517,7 +521,7 @@ function sameDescriptor(
|
|
|
517
521
|
|
|
518
522
|
function toDiscoveryDescriptor(
|
|
519
523
|
descriptor: ZLinkClientServerServerDescriptor,
|
|
520
|
-
effectiveMaxMessageBytes =
|
|
524
|
+
effectiveMaxMessageBytes: number = DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT
|
|
521
525
|
) {
|
|
522
526
|
return {
|
|
523
527
|
channelName: descriptor.channelName,
|
|
@@ -541,7 +545,7 @@ function requestAdmission(
|
|
|
541
545
|
encodeClientServerHello({
|
|
542
546
|
channelName: descriptor.channelName,
|
|
543
547
|
securityIdentity: descriptor.securityIdentity,
|
|
544
|
-
normalizedEffectiveMaxMessageBytes:
|
|
548
|
+
normalizedEffectiveMaxMessageBytes: normalizeClientServerMessageLimit(dealer.maxMessageSize)
|
|
545
549
|
})
|
|
546
550
|
);
|
|
547
551
|
return dealer.request(message, timeoutMs).then(
|
|
@@ -600,7 +604,3 @@ function requireMatchingAdmission(
|
|
|
600
604
|
function closeMessages(parts: readonly Message[]): void {
|
|
601
605
|
for (const part of parts) part.close();
|
|
602
606
|
}
|
|
603
|
-
|
|
604
|
-
function normalizedMessageLimit(value: number): number {
|
|
605
|
-
return Number.isSafeInteger(value) && value > 0 ? Math.min(value, 0xffff_ffff) : 0x7fff_ffff;
|
|
606
|
-
}
|
|
@@ -1,16 +1,40 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { UINT32_MAX } from '@zlink-systems/stream-wire';
|
|
2
|
+
import { normalizeEndpoint } from '../../contracts/Configuration/EndpointNotation';
|
|
3
|
+
import { isValidPublicWeight } from '../../contracts/Configuration/RegistrationBuilderPolicy';
|
|
4
|
+
import {
|
|
5
|
+
type ZLinkClientServerServerDescriptor,
|
|
6
|
+
ZLinkFrameworkRuntimeState
|
|
7
|
+
} from '../../contracts/Locations';
|
|
8
|
+
|
|
3
9
|
import {
|
|
4
10
|
decodeCanonicalServiceWireText,
|
|
5
11
|
decodeServiceWireRoutingId,
|
|
6
12
|
encodeCanonicalServiceWireText,
|
|
7
13
|
encodeServiceWireRoutingId
|
|
8
14
|
} from '../foundation/service-wire-binary-primitives';
|
|
9
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
SERVICE_WIRE_MAGIC,
|
|
17
|
+
SERVICE_WIRE_MAJOR
|
|
18
|
+
} from '../foundation/service-wire-constants.generated';
|
|
19
|
+
export const DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT = 0x7fff_ffff;
|
|
20
|
+
export function normalizeClientServerMessageLimit(value: number): number {
|
|
21
|
+
return Number.isSafeInteger(value) && value > 0
|
|
22
|
+
? Math.min(value, UINT32_MAX)
|
|
23
|
+
: DEFAULT_CLIENT_SERVER_MESSAGE_LIMIT;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const CLIENT_SERVER_PREFIX_BYTES = 5;
|
|
27
|
+
const CLIENT_SERVER_ROLE_BODY_MAX_BYTES = 0xffff;
|
|
28
|
+
const CLIENT_SERVER_TEXT_MAX_BYTES = 4096;
|
|
29
|
+
|
|
30
|
+
export enum ClientServerRejectReason {
|
|
31
|
+
ProtocolVersionUnsupported = 1,
|
|
32
|
+
AdmissionMismatch = 3
|
|
33
|
+
}
|
|
10
34
|
|
|
11
|
-
const MAGIC_0 =
|
|
12
|
-
const MAGIC_1 =
|
|
13
|
-
const WIRE_MAJOR =
|
|
35
|
+
const MAGIC_0 = SERVICE_WIRE_MAGIC[0];
|
|
36
|
+
const MAGIC_1 = SERVICE_WIRE_MAGIC[1];
|
|
37
|
+
const WIRE_MAJOR = SERVICE_WIRE_MAJOR;
|
|
14
38
|
const TOPOLOGY_CLIENT_SERVER = 2;
|
|
15
39
|
const ROLE_CLIENT = 1;
|
|
16
40
|
const ROLE_SERVER = 2;
|
|
@@ -22,7 +46,7 @@ const COMMAND_UPDATE = 4;
|
|
|
22
46
|
const COMMAND_LIVENESS_PROBE = 5;
|
|
23
47
|
const COMMAND_LIVENESS_ACK = 6;
|
|
24
48
|
const MAX_DESCRIPTOR_BYTES = 1024 * 1024;
|
|
25
|
-
const MAX_U32 =
|
|
49
|
+
const MAX_U32 = UINT32_MAX;
|
|
26
50
|
const MAX_GENERATION = 0x7fff_ffff_ffff_ffffn;
|
|
27
51
|
|
|
28
52
|
export interface ZLinkClientServerHello {
|
|
@@ -99,7 +123,10 @@ export function encodeClientServerLivenessAck(probeId: bigint): Buffer {
|
|
|
99
123
|
|
|
100
124
|
export function isClientServerControlFrame(frame: Uint8Array): boolean {
|
|
101
125
|
return (
|
|
102
|
-
frame.byteLength >=
|
|
126
|
+
frame.byteLength >= CLIENT_SERVER_PREFIX_BYTES &&
|
|
127
|
+
frame[0] === MAGIC_0 &&
|
|
128
|
+
frame[1] === MAGIC_1 &&
|
|
129
|
+
frame[2] === WIRE_MAJOR
|
|
103
130
|
);
|
|
104
131
|
}
|
|
105
132
|
|
|
@@ -177,7 +204,8 @@ function encodeServerAdmission(
|
|
|
177
204
|
}
|
|
178
205
|
|
|
179
206
|
function encodeAdmission(command: number, role: number, roleBody: Buffer): Buffer {
|
|
180
|
-
if (roleBody.byteLength >
|
|
207
|
+
if (roleBody.byteLength > CLIENT_SERVER_ROLE_BODY_MAX_BYTES)
|
|
208
|
+
fail('ClientServer role body is oversized.');
|
|
181
209
|
const admission = concat(Buffer.of(role), encodeU16(roleBody.byteLength), roleBody);
|
|
182
210
|
const result = concat(
|
|
183
211
|
prefix(command),
|
|
@@ -210,7 +238,7 @@ function decodeServerAdmission(reader: Reader): ZLinkClientServerAdmission {
|
|
|
210
238
|
const lifecycleGeneration = reader.nonZeroU64('lifecycleGeneration');
|
|
211
239
|
const descriptorRevision = reader.nonZeroU64('descriptorRevision');
|
|
212
240
|
const weight = reader.u32('weight');
|
|
213
|
-
if (weight
|
|
241
|
+
if (!isValidPublicWeight(weight)) fail('ClientServer weight is invalid.');
|
|
214
242
|
return {
|
|
215
243
|
channelName,
|
|
216
244
|
serverRid,
|
|
@@ -261,7 +289,7 @@ function encodeText8(value: string, field: string): Buffer {
|
|
|
261
289
|
}
|
|
262
290
|
|
|
263
291
|
function encodeText16(value: string, field: string): Buffer {
|
|
264
|
-
const bytes = encodeCanonicalServiceWireText(value, field,
|
|
292
|
+
const bytes = encodeCanonicalServiceWireText(value, field, CLIENT_SERVER_TEXT_MAX_BYTES, fail);
|
|
265
293
|
return concat(encodeU16(bytes.byteLength), bytes);
|
|
266
294
|
}
|
|
267
295
|
|
|
@@ -373,7 +401,7 @@ class Reader {
|
|
|
373
401
|
|
|
374
402
|
text16(field: string): string {
|
|
375
403
|
const length = this.u16(`${field}.length`);
|
|
376
|
-
if (length < 1 || length >
|
|
404
|
+
if (length < 1 || length > CLIENT_SERVER_TEXT_MAX_BYTES) fail(`${field} length is invalid.`);
|
|
377
405
|
return decodeText(this.bytes(length, field), field);
|
|
378
406
|
}
|
|
379
407
|
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
|
-
ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome,
|
|
3
2
|
ZLinkRuntimeDispatchErrorAction as ZLinkDispatchErrorAction,
|
|
4
3
|
ZLinkRuntimeDispatchErrorReason as ZLinkDispatchErrorReason,
|
|
5
4
|
ZLinkDispatchErrorSurface,
|
|
6
5
|
ZLinkDispatchMessageKind,
|
|
6
|
+
ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome,
|
|
7
7
|
type ZLinkDispatchFailure
|
|
8
8
|
} from '../../contracts/Dispatch/ZLinkDispatchOptions';
|
|
9
|
-
import type { ZLinkRuntimeMetrics } from '../diagnostics';
|
|
10
9
|
import {
|
|
11
|
-
|
|
10
|
+
type ZLinkRuntimeMetrics,
|
|
12
11
|
DEFAULT_ZLINK_DIAGNOSTICS,
|
|
12
|
+
ZLinkMessageFlowTracer,
|
|
13
13
|
type ZLinkDiagnosticsContext
|
|
14
14
|
} from '../diagnostics';
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
import { dispatchErrorDetails } from '../diagnostics/dispatch-error-details';
|
|
17
|
+
import type { ZLinkDispatchErrorSink } from '../diagnostics/dispatch-error-port';
|
|
18
|
+
import { METRIC_NAMES } from '../diagnostics/runtime-metrics';
|
|
17
19
|
|
|
18
20
|
export type { ZLinkDispatchErrorSink } from '../diagnostics/dispatch-error-port';
|
|
19
21
|
|
|
@@ -49,7 +51,7 @@ export class ZLinkDispatchErrorReporter {
|
|
|
49
51
|
const normalized = normalizeDispatchFailure(event);
|
|
50
52
|
const dropReason = channelDropReason(normalized);
|
|
51
53
|
if (dropReason !== undefined) {
|
|
52
|
-
this.metrics?.count(
|
|
54
|
+
this.metrics?.count(METRIC_NAMES.MeshNodeMessagesDropped, 1, {
|
|
53
55
|
surface: normalized.surface,
|
|
54
56
|
message_kind: normalized.messageKind,
|
|
55
57
|
reason: dropReason
|