@zlink-systems/framework 0.25.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/Channels/IZLinkFanoutClient.d.ts +0 -6
- 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/RouteMesh/RuntimeTopology.d.ts +8 -0
- package/dist/contracts/Spots/Contracts.d.ts +1 -1
- package/dist/internal.d.ts +5 -0
- package/dist/internal.js +16 -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 +28 -0
- package/dist/runtime/activation-admission.js +57 -0
- 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 +19 -17
- package/dist/runtime/actors/actor-handoff.d.ts +13 -7
- package/dist/runtime/actors/actor-handoff.js +36 -25
- 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 +85 -123
- 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 +3 -3
- package/dist/runtime/actors/actor-remote-joiner.js +11 -17
- 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-contracts.d.ts +4 -2
- 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/actor-source-transfer.d.ts +5 -5
- package/dist/runtime/actors/bound-session-wire.js +2 -7
- package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
- package/dist/runtime/actors/deferred-join-completion.js +21 -0
- package/dist/runtime/actors/index.d.ts +10 -8
- package/dist/runtime/actors/index.js +101 -73
- 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 +7 -1
- package/dist/runtime/admission.js +11 -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 +8 -33
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
- 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-factory.d.ts +1 -2
- package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
- package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
- package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
- package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
- package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
- package/dist/runtime/backend/raw-binding-port.d.ts +13 -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 -9
- package/dist/runtime/channels/channel-clients.js +68 -60
- 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 -18
- 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.d.ts +2 -5
- package/dist/runtime/channels/channel-runtime-manager.js +4 -12
- package/dist/runtime/channels/channel-socket-options.js +3 -2
- package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
- package/dist/runtime/channels/channel-socket-registry.js +296 -235
- package/dist/runtime/channels/channel-transports.d.ts +11 -20
- 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 +133 -81
- 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 +22 -9
- package/dist/runtime/execution/index.js +107 -37
- package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
- package/dist/runtime/execution/serial-execution-queue.js +99 -26
- 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/listener-records.d.ts +11 -0
- package/dist/runtime/foundation/listener-records.js +20 -0
- 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 +18 -26
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
- 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.d.ts +1 -0
- package/dist/runtime/foundation/service-authority-payload-codec.js +30 -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 +23 -8
- 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-coordinator.d.ts +9 -0
- package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
- package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
- 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 -19
- 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 +28 -24
- package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
- package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
- package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
- package/dist/runtime/foundation/service-topology-registry.js +22 -61
- 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 +28 -28
- package/dist/runtime/host/actor-transfer-runtime.js +210 -256
- 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 +19 -14
- package/dist/runtime/host/index.js +234 -175
- 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 +11 -23
- package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
- package/dist/runtime/host/route-mesh-runtime.js +178 -257
- 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 +71 -38
- package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
- 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 -7
- package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
- package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
- package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
- 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 +79 -27
- 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 +5 -10
- package/dist/runtime/locations/lifecycle.js +4 -33
- 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 +44 -30
- 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 +8 -2
- package/dist/runtime/locations/spot-location-claims.js +40 -23
- 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 +2 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
- package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
- package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
- package/dist/runtime/spots/index.d.ts +29 -29
- package/dist/runtime/spots/index.js +441 -313
- package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
- package/dist/runtime/spots/spot-activation-registry.js +27 -60
- package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
- package/dist/runtime/spots/spot-activation-state.js +4 -17
- package/dist/runtime/spots/spot-activation.d.ts +10 -9
- package/dist/runtime/spots/spot-activation.js +103 -81
- 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 +5 -55
- package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
- package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
- package/dist/runtime/spots/spot-actor-membership.js +44 -53
- 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 +3 -4
- package/dist/runtime/spots/spot-entry-activation.js +9 -21
- 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 +6 -5
- package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
- package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
- package/dist/runtime/spots/spot-outbound.d.ts +4 -3
- package/dist/runtime/spots/spot-outbound.js +10 -37
- 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 -2
- package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
- package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
- 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 +4 -20
- package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
- package/dist/runtime/spots/spot-serial-executor.js +9 -2
- package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
- package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
- package/dist/runtime/spots/spot-timer.d.ts +3 -2
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
- package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
- 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 +12 -19
- package/dist/runtime/streams/index.d.ts +15 -14
- package/dist/runtime/streams/index.js +38 -39
- 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/session-serial-executor.js +2 -2
- 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/Channels/IZLinkFanoutClient.ts +0 -7
- 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/RouteMesh/RuntimeTopology.ts +10 -0
- package/src/contracts/Spots/Contracts.ts +1 -1
- package/src/internal.ts +15 -0
- package/src/nest-integration.ts +28 -10
- package/src/runtime/abort.ts +6 -5
- package/src/runtime/activation-admission.ts +72 -0
- 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 +45 -39
- package/src/runtime/actors/actor-handoff.ts +55 -45
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
- package/src/runtime/actors/actor-local-native-join.ts +174 -215
- 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 +15 -36
- 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-contracts.ts +4 -10
- package/src/runtime/actors/actor-runtime-state.ts +85 -247
- package/src/runtime/actors/actor-source-transfer.ts +5 -18
- package/src/runtime/actors/bound-session-wire.ts +2 -8
- package/src/runtime/actors/deferred-join-completion.ts +44 -0
- package/src/runtime/actors/index.ts +122 -88
- 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 +13 -2
- package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
- package/src/runtime/backend/contracts/index.ts +15 -42
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
- package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
- package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
- package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
- package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
- package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
- package/src/runtime/backend/raw-binding-port.ts +14 -1
- package/src/runtime/backend/runtime-values.ts +4 -1
- package/src/runtime/channels/channel-clients.ts +132 -96
- 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 -31
- 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 +8 -15
- package/src/runtime/channels/channel-socket-options.ts +8 -2
- package/src/runtime/channels/channel-socket-registry.ts +369 -262
- package/src/runtime/channels/channel-transports.ts +161 -115
- 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 +175 -106
- 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 +116 -38
- package/src/runtime/execution/serial-execution-queue.ts +179 -34
- 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/listener-records.ts +21 -0
- 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 +170 -571
- package/src/runtime/foundation/runtime-state-projections.ts +9 -1
- package/src/runtime/foundation/service-authority-payload-codec.ts +41 -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 +30 -19
- 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-coordinator.ts +13 -0
- package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
- 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 -25
- package/src/runtime/foundation/service-stateful-registry.ts +14 -2
- package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
- package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
- package/src/runtime/foundation/service-topology-registry.ts +30 -79
- 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 +266 -418
- 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 +408 -312
- 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 +12 -44
- package/src/runtime/host/route-mesh-runtime.ts +236 -275
- 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 +1161 -904
- 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 +92 -30
- package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
- package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
- 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 +110 -31
- package/src/runtime/locations/key-codec.ts +3 -2
- package/src/runtime/locations/lease-tracker.ts +8 -14
- package/src/runtime/locations/lifecycle.ts +16 -45
- 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 +90 -58
- package/src/runtime/locations/runtime.ts +220 -110
- package/src/runtime/locations/spot-location-claims.ts +54 -26
- 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 +27 -10
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
- package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
- package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
- package/src/runtime/spots/index.ts +687 -437
- package/src/runtime/spots/spot-activation-registry.ts +42 -71
- package/src/runtime/spots/spot-activation-state.ts +4 -16
- package/src/runtime/spots/spot-activation.ts +167 -115
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
- package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
- package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
- package/src/runtime/spots/spot-actor-membership.ts +107 -75
- 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 -33
- package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
- package/src/runtime/spots/spot-manager-public.ts +29 -21
- package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
- package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
- package/src/runtime/spots/spot-outbound.ts +47 -68
- 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 -6
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
- package/src/runtime/spots/spot-runtime-ports.ts +10 -43
- package/src/runtime/spots/spot-serial-executor.ts +10 -2
- package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
- package/src/runtime/spots/spot-timer.ts +3 -2
- package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
- package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
- package/src/runtime/streams/bound-session-service.ts +23 -37
- package/src/runtime/streams/index.ts +102 -88
- 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/session-serial-executor.ts +2 -2
- 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/deferred-join-accepted-journal.d.ts +0 -47
- package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
- 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/deferred-join-accepted-journal.ts +0 -1346
- package/src/runtime/actors/post-commit-actor-location.ts +0 -121
- package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
|
@@ -1,41 +1,57 @@
|
|
|
1
|
+
import { ZlinkStreamContentType } from '@zlink-systems/stream-wire';
|
|
1
2
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
type ActorRef,
|
|
4
|
+
type RoutingId,
|
|
5
|
+
type ZLinkActorClient,
|
|
6
|
+
type ZLinkActorRequestCall,
|
|
7
|
+
type ZLinkActorSendCall,
|
|
8
|
+
type ZLinkMessageSerializer,
|
|
9
|
+
ZLinkFrameworkErrorKind,
|
|
10
|
+
ZLinkFrameworkException,
|
|
11
|
+
ZLinkSpotKind
|
|
12
|
+
} from '../../contracts';
|
|
13
|
+
|
|
14
|
+
import { ZLINK_MAX_ACTOR_ID_BYTES } from '../../contracts/Common/CoreTypes';
|
|
15
|
+
import type { Message } from '../../contracts/Common/Message';
|
|
16
|
+
import { awaitWithAbort, throwIfAborted } from '../abort';
|
|
17
|
+
import {
|
|
18
|
+
type ZLinkBackendActorRef,
|
|
19
|
+
type ZLinkBackendMeshNode,
|
|
20
|
+
type ZLinkMeshCompletionTable,
|
|
21
|
+
closeMeshCompletion
|
|
22
|
+
} from '../backend';
|
|
23
|
+
|
|
6
24
|
import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
|
|
7
25
|
import {
|
|
26
|
+
isZLinkBackendResultError,
|
|
8
27
|
RequestResult,
|
|
9
28
|
SubmitResult,
|
|
10
|
-
isZLinkBackendResultError,
|
|
11
29
|
ZLINK_BACKEND_SEND_NONE
|
|
12
30
|
} from '../backend/runtime-values';
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
} from '
|
|
21
|
-
import { ZLinkSpotKind } from '../../contracts';
|
|
22
|
-
import { ZLinkFrameworkException, ZLinkFrameworkErrorKind } from '../../contracts';
|
|
31
|
+
import { ZLinkConfigurationException } from '../configuration';
|
|
32
|
+
import {
|
|
33
|
+
captureZLinkSpotSerialTurn,
|
|
34
|
+
currentZLinkSpotSerialSourceId,
|
|
35
|
+
requireZLinkYieldTurn,
|
|
36
|
+
type ZLinkSpotSerialTurn
|
|
37
|
+
} from '../execution';
|
|
38
|
+
import { remainingActorRequestTimeout, waitActorReply } from './actor-request-deadline';
|
|
23
39
|
import {
|
|
40
|
+
createInternalFrameworkException,
|
|
41
|
+
internalFrameworkErrorKind,
|
|
42
|
+
internalFrameworkErrorKindFromWireFailureCode,
|
|
43
|
+
ZLinkFrameworkInternalErrorKind
|
|
44
|
+
} from '../framework-errors-internal';
|
|
45
|
+
import type { ZLinkResolvedActorRoute, ZLinkStoreLocationResolvers } from '../locations';
|
|
46
|
+
import { resolveFrameworkPacketName } from '../messaging/packet-name';
|
|
47
|
+
import { decodeFrameworkPayloadMessage, encodeFrameworkPayload } from '../messaging/payload-codec';
|
|
48
|
+
import {
|
|
49
|
+
classifySubmitResult,
|
|
24
50
|
requireOneWayCompletion,
|
|
25
51
|
throwAlreadySubmitted,
|
|
26
52
|
ZLinkSubmitStatus,
|
|
27
53
|
type ZLinkSubmitResult
|
|
28
54
|
} from '../messaging/submission-result';
|
|
29
|
-
import type { Message } from '../../contracts/Common/Message';
|
|
30
|
-
import type {
|
|
31
|
-
ZLinkBackendActorRef,
|
|
32
|
-
ZLinkBackendMeshNode,
|
|
33
|
-
ZLinkMeshCompletionTable
|
|
34
|
-
} from '../backend';
|
|
35
|
-
import { closeMeshCompletion } from '../backend';
|
|
36
|
-
import { awaitWithAbort, throwIfAborted } from '../abort';
|
|
37
|
-
import { encodeFrameworkPayload, decodeFrameworkPayloadMessage } from '../messaging/payload-codec';
|
|
38
|
-
import { resolveFrameworkPacketName } from '../messaging/packet-name';
|
|
39
55
|
import {
|
|
40
56
|
actorRequestDeadlineMetadata,
|
|
41
57
|
decodeStreamHeader,
|
|
@@ -45,11 +61,7 @@ import {
|
|
|
45
61
|
ZLinkStreamHeaderFlags,
|
|
46
62
|
ZLinkStreamMessageKind
|
|
47
63
|
} from '../streams/protocol';
|
|
48
|
-
import
|
|
49
|
-
import type { ZLinkResolvedActorRoute } from '../locations';
|
|
50
|
-
import type { ZLinkActorRoutedJoinTransport } from './actor-routed-join-transport';
|
|
51
|
-
import { encodeRemoteActorPacketRelayPayload } from './actor-packet-relay-wire';
|
|
52
|
-
import { requestRoutedJsonReply } from './actor-routed-json-request';
|
|
64
|
+
import { currentZLinkActorExecution } from './actor-execution-context';
|
|
53
65
|
import {
|
|
54
66
|
attachActorMessageFollowContext,
|
|
55
67
|
createInitialActorMessageFollowContext,
|
|
@@ -57,13 +69,11 @@ import {
|
|
|
57
69
|
type ZLinkActorMessageFollowContext
|
|
58
70
|
} from './actor-message-follow-context';
|
|
59
71
|
import {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
} from '
|
|
65
|
-
import { ZLinkConfigurationException } from '../configuration';
|
|
66
|
-
import { currentZLinkActorExecution } from './actor-execution-context';
|
|
72
|
+
encodeRemoteActorPacketRelayPayload,
|
|
73
|
+
ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET
|
|
74
|
+
} from './actor-packet-relay-wire';
|
|
75
|
+
import type { ZLinkActorRoutedJoinTransport } from './actor-routed-join-transport';
|
|
76
|
+
import { requestRoutedJsonReply } from './actor-routed-json-request';
|
|
67
77
|
|
|
68
78
|
export interface ZLinkActorClientOptions {
|
|
69
79
|
readonly nodeProvider: (meshName: string) => ZLinkBackendMeshNode | undefined;
|
|
@@ -163,7 +173,7 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
|
|
|
163
173
|
if (duplicate !== undefined) submissions.push(duplicate);
|
|
164
174
|
}
|
|
165
175
|
await awaitWithAbort(Promise.all(submissions), signal);
|
|
166
|
-
return
|
|
176
|
+
return { status: ZLinkSubmitStatus.Submitted };
|
|
167
177
|
}
|
|
168
178
|
const node = this.requireNode(meshName);
|
|
169
179
|
if (
|
|
@@ -181,9 +191,9 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
|
|
|
181
191
|
returnResponse: false,
|
|
182
192
|
messageFollowContext: messageFollow
|
|
183
193
|
}),
|
|
184
|
-
{ packetName:
|
|
194
|
+
{ packetName: ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET }
|
|
185
195
|
);
|
|
186
|
-
return
|
|
196
|
+
return { status: ZLinkSubmitStatus.Submitted };
|
|
187
197
|
}
|
|
188
198
|
return await this.submitActorSend(meshName, toBackendActorRef(actor), parts);
|
|
189
199
|
} catch (error) {
|
|
@@ -214,7 +224,7 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
|
|
|
214
224
|
effectiveTimeoutMs === undefined ? undefined : performance.now() + effectiveTimeoutMs;
|
|
215
225
|
const deadlineUnixMs =
|
|
216
226
|
effectiveTimeoutMs === undefined ? undefined : Date.now() + effectiveTimeoutMs;
|
|
217
|
-
const route = await this.resolveActorRoute(actorId, signal);
|
|
227
|
+
const route = await this.resolveActorRoute(actorId, signal, deadlineMs);
|
|
218
228
|
if (
|
|
219
229
|
waitPolicy === 'async' &&
|
|
220
230
|
sourceSpotId !== undefined &&
|
|
@@ -248,10 +258,13 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
|
|
|
248
258
|
);
|
|
249
259
|
const routedActor = attachActorMessageFollowContext(actor, messageFollow);
|
|
250
260
|
try {
|
|
261
|
+
const delivery = this.options
|
|
262
|
+
.transportDeliveryGate?.()
|
|
263
|
+
?.waitBeforeSubmit(actorId, 'request', signal);
|
|
251
264
|
const submissionCopies =
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
265
|
+
delivery === undefined
|
|
266
|
+
? 1
|
|
267
|
+
: ((await waitActorReply(delivery, actorId, deadlineMs, signal)) ?? 1);
|
|
255
268
|
const handoff = this.options.handoffCapture?.(
|
|
256
269
|
meshName,
|
|
257
270
|
actor.actorId,
|
|
@@ -273,9 +286,11 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
|
|
|
273
286
|
);
|
|
274
287
|
if (duplicate !== undefined) submissions.push(duplicate);
|
|
275
288
|
}
|
|
276
|
-
const replies = await
|
|
289
|
+
const replies = await waitActorReply<unknown[]>(
|
|
277
290
|
Promise.all(submissions),
|
|
278
|
-
|
|
291
|
+
actorId,
|
|
292
|
+
deadlineMs,
|
|
293
|
+
signal
|
|
279
294
|
);
|
|
280
295
|
return replies[0] as TReply;
|
|
281
296
|
}
|
|
@@ -302,7 +317,8 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
|
|
|
302
317
|
|
|
303
318
|
private async resolveActorRoute(
|
|
304
319
|
actorId: string,
|
|
305
|
-
signal?: AbortSignal
|
|
320
|
+
signal?: AbortSignal,
|
|
321
|
+
deadlineMs?: number
|
|
306
322
|
): Promise<ZLinkResolvedActorRoute> {
|
|
307
323
|
const resolver = this.options.locationResolver();
|
|
308
324
|
if (resolver === undefined) {
|
|
@@ -311,7 +327,7 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
|
|
|
311
327
|
'Actor direct messaging requires a Location Store.'
|
|
312
328
|
);
|
|
313
329
|
}
|
|
314
|
-
const resolution = await resolver.resolveDirectActorRoute(actorId, signal);
|
|
330
|
+
const resolution = await resolver.resolveDirectActorRoute(actorId, signal, deadlineMs);
|
|
315
331
|
if (resolution.kind === 'missing') {
|
|
316
332
|
throw createInternalFrameworkException(
|
|
317
333
|
ZLinkFrameworkInternalErrorKind.ActorRouteNotFound,
|
|
@@ -390,7 +406,7 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
|
|
|
390
406
|
): Promise<ZLinkSubmitResult> {
|
|
391
407
|
const node = this.requireNode(meshName);
|
|
392
408
|
try {
|
|
393
|
-
return
|
|
409
|
+
return classifySubmitResult(
|
|
394
410
|
await node.sendToActor(actor, toMessageLikeParts(parts), {
|
|
395
411
|
flags: ZLINK_BACKEND_SEND_NONE
|
|
396
412
|
}),
|
|
@@ -398,11 +414,9 @@ export class DefaultZLinkActorClient implements ZLinkActorClient {
|
|
|
398
414
|
);
|
|
399
415
|
} catch (error) {
|
|
400
416
|
if (isZLinkBackendResultError(error)) {
|
|
401
|
-
return
|
|
417
|
+
return classifySubmitResult(error.result, 'Actor send', error.phase);
|
|
402
418
|
}
|
|
403
|
-
throw
|
|
404
|
-
? mapRequestError(error, 'Actor send')
|
|
405
|
-
: mapSubmitError(error, 'Actor send');
|
|
419
|
+
throw mapSubmitError(error, 'Actor send');
|
|
406
420
|
}
|
|
407
421
|
}
|
|
408
422
|
|
|
@@ -560,53 +574,12 @@ function remoteRelayErrorKind(value: unknown): ZLinkFrameworkInternalErrorKind {
|
|
|
560
574
|
: ZLinkFrameworkInternalErrorKind.RequestFailed;
|
|
561
575
|
}
|
|
562
576
|
|
|
563
|
-
function remainingActorRequestTimeout(
|
|
564
|
-
actorId: string,
|
|
565
|
-
deadlineMs: number | undefined
|
|
566
|
-
): number | undefined {
|
|
567
|
-
if (deadlineMs === undefined) return undefined;
|
|
568
|
-
const remaining = deadlineMs - performance.now();
|
|
569
|
-
if (remaining <= 0) {
|
|
570
|
-
throw createInternalFrameworkException(
|
|
571
|
-
ZLinkFrameworkInternalErrorKind.DeadlineExceeded,
|
|
572
|
-
`Actor request '${actorId}' exceeded its deadline before submission.`
|
|
573
|
-
);
|
|
574
|
-
}
|
|
575
|
-
return Math.max(1, Math.ceil(remaining));
|
|
576
|
-
}
|
|
577
|
-
|
|
578
577
|
function requireActorId(actorId: string): void {
|
|
579
578
|
const byteLength = Buffer.byteLength(actorId, 'utf8');
|
|
580
|
-
if (byteLength < 1 || byteLength >
|
|
581
|
-
throw new ZLinkConfigurationException(
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
async function waitHandoffReply<TReply>(
|
|
586
|
-
reply: Promise<unknown>,
|
|
587
|
-
timeoutMs: number | undefined
|
|
588
|
-
): Promise<TReply> {
|
|
589
|
-
if (timeoutMs === undefined) return (await reply) as TReply;
|
|
590
|
-
let deadline: ReturnType<typeof setTimeout> | undefined;
|
|
591
|
-
try {
|
|
592
|
-
return await Promise.race([
|
|
593
|
-
reply as Promise<TReply>,
|
|
594
|
-
new Promise<TReply>((_resolve, reject) => {
|
|
595
|
-
deadline = setTimeout(
|
|
596
|
-
() =>
|
|
597
|
-
reject(
|
|
598
|
-
createInternalFrameworkException(
|
|
599
|
-
ZLinkFrameworkInternalErrorKind.RequestFailed,
|
|
600
|
-
'Actor handoff request timed out.',
|
|
601
|
-
true
|
|
602
|
-
)
|
|
603
|
-
),
|
|
604
|
-
timeoutMs
|
|
605
|
-
);
|
|
606
|
-
})
|
|
607
|
-
]);
|
|
608
|
-
} finally {
|
|
609
|
-
if (deadline !== undefined) clearTimeout(deadline);
|
|
579
|
+
if (byteLength < 1 || byteLength > ZLINK_MAX_ACTOR_ID_BYTES) {
|
|
580
|
+
throw new ZLinkConfigurationException(
|
|
581
|
+
`Actor ID must contain 1..${ZLINK_MAX_ACTOR_ID_BYTES} UTF-8 bytes.`
|
|
582
|
+
);
|
|
610
583
|
}
|
|
611
584
|
}
|
|
612
585
|
|
|
@@ -861,7 +834,7 @@ function decodeActorReplyPayload<TReply>(
|
|
|
861
834
|
payload,
|
|
862
835
|
serializers,
|
|
863
836
|
undefined,
|
|
864
|
-
|
|
837
|
+
ZlinkStreamContentType.Json,
|
|
865
838
|
packetName,
|
|
866
839
|
'reply'
|
|
867
840
|
);
|
|
@@ -871,29 +844,6 @@ function mapSubmitError(error: unknown, operationName: string): Error {
|
|
|
871
844
|
if (error instanceof ZLinkFrameworkException) {
|
|
872
845
|
return error;
|
|
873
846
|
}
|
|
874
|
-
if (isZLinkBackendResultError(error)) {
|
|
875
|
-
switch (error.result) {
|
|
876
|
-
case SubmitResult.NotConnected:
|
|
877
|
-
return routeNotConnected(
|
|
878
|
-
`${operationName} failed because the target route is not connected.`,
|
|
879
|
-
error
|
|
880
|
-
);
|
|
881
|
-
case SubmitResult.NotFound:
|
|
882
|
-
return createInternalFrameworkException(
|
|
883
|
-
ZLinkFrameworkInternalErrorKind.ActorRouteNotFound,
|
|
884
|
-
`${operationName} failed because the actor route was not found.`,
|
|
885
|
-
false,
|
|
886
|
-
error
|
|
887
|
-
);
|
|
888
|
-
default:
|
|
889
|
-
return createInternalFrameworkException(
|
|
890
|
-
ZLinkFrameworkInternalErrorKind.RequestFailed,
|
|
891
|
-
`${operationName} failed with submit result ${error.result}.`,
|
|
892
|
-
false,
|
|
893
|
-
error
|
|
894
|
-
);
|
|
895
|
-
}
|
|
896
|
-
}
|
|
897
847
|
return createInternalFrameworkException(
|
|
898
848
|
ZLinkFrameworkInternalErrorKind.RouteNotConnected,
|
|
899
849
|
`${operationName} failed before a reply was received.`,
|
|
@@ -902,79 +852,6 @@ function mapSubmitError(error: unknown, operationName: string): Error {
|
|
|
902
852
|
);
|
|
903
853
|
}
|
|
904
854
|
|
|
905
|
-
function mapSubmitResult(result: number, operationName: string): ZLinkSubmitResult {
|
|
906
|
-
switch (result) {
|
|
907
|
-
case SubmitResult.Ok:
|
|
908
|
-
return submitted();
|
|
909
|
-
case SubmitResult.Backpressured:
|
|
910
|
-
case SubmitResult.NotAdmitted:
|
|
911
|
-
return { status: ZLinkSubmitStatus.Backpressured };
|
|
912
|
-
case SubmitResult.NotConnected:
|
|
913
|
-
return { status: ZLinkSubmitStatus.RouteNotConnected };
|
|
914
|
-
case SubmitResult.NotFound:
|
|
915
|
-
return { status: ZLinkSubmitStatus.TargetNotFound };
|
|
916
|
-
case SubmitResult.Terminated:
|
|
917
|
-
return { status: ZLinkSubmitStatus.Shutdown };
|
|
918
|
-
default:
|
|
919
|
-
throw createInternalFrameworkException(
|
|
920
|
-
ZLinkFrameworkInternalErrorKind.RequestFailed,
|
|
921
|
-
`${operationName} failed with submit result ${result}.`
|
|
922
|
-
);
|
|
923
|
-
}
|
|
924
|
-
}
|
|
925
|
-
|
|
926
|
-
function submitted(): ZLinkSubmitResult {
|
|
927
|
-
return { status: ZLinkSubmitStatus.Submitted };
|
|
928
|
-
}
|
|
929
|
-
|
|
930
|
-
// Ownership-aware Actor remote-reply translator (spec 32:81-118, 99-103):
|
|
931
|
-
// the reply comes from a remote target, so a fine framework failure code
|
|
932
|
-
// refines the coarse terminal, and a terminal-only conflict/busy is the
|
|
933
|
-
// target's owner/queue state (retryable stale/Unavailable), never a
|
|
934
|
-
// source-owned queue exhaustion. Backpressure never appears on this reply
|
|
935
|
-
// path. Internal kinds are preserved so the stale-actor re-resolve retry
|
|
936
|
-
// (isStaleActorError) keeps working.
|
|
937
|
-
function actorFailureCodeKind(failureErrno: number): ZLinkFrameworkInternalErrorKind | undefined {
|
|
938
|
-
switch (failureErrno) {
|
|
939
|
-
case 3:
|
|
940
|
-
return ZLinkFrameworkInternalErrorKind.ActorAlreadyExists;
|
|
941
|
-
case 4:
|
|
942
|
-
return ZLinkFrameworkInternalErrorKind.ActorTypeMismatch;
|
|
943
|
-
case 7:
|
|
944
|
-
return ZLinkFrameworkInternalErrorKind.SpotTypeMismatch;
|
|
945
|
-
case 8:
|
|
946
|
-
return ZLinkFrameworkInternalErrorKind.ActorSessionNotBound;
|
|
947
|
-
case 9:
|
|
948
|
-
case 14:
|
|
949
|
-
return ZLinkFrameworkInternalErrorKind.RequestTargetNotFound;
|
|
950
|
-
case 12:
|
|
951
|
-
case 16:
|
|
952
|
-
return ZLinkFrameworkInternalErrorKind.RequestProtocolError;
|
|
953
|
-
// routeNotConnected(13) and a remote worker queue full(18) are Unavailable.
|
|
954
|
-
case 13:
|
|
955
|
-
case 18:
|
|
956
|
-
return ZLinkFrameworkInternalErrorKind.RouteNotConnected;
|
|
957
|
-
case 15:
|
|
958
|
-
return ZLinkFrameworkInternalErrorKind.RequestRejected;
|
|
959
|
-
case 19:
|
|
960
|
-
return ZLinkFrameworkInternalErrorKind.WorkerTimedOut;
|
|
961
|
-
case 17:
|
|
962
|
-
return ZLinkFrameworkInternalErrorKind.RequestFailed;
|
|
963
|
-
case 20:
|
|
964
|
-
return ZLinkFrameworkInternalErrorKind.WorkerFailed;
|
|
965
|
-
case 21:
|
|
966
|
-
return ZLinkFrameworkInternalErrorKind.ActorLocationStale;
|
|
967
|
-
case 33:
|
|
968
|
-
return ZLinkFrameworkInternalErrorKind.ActorGenerationStale;
|
|
969
|
-
case 34:
|
|
970
|
-
return ZLinkFrameworkInternalErrorKind.ActorMoving;
|
|
971
|
-
case 35:
|
|
972
|
-
return ZLinkFrameworkInternalErrorKind.RelocationDataLost;
|
|
973
|
-
default:
|
|
974
|
-
return undefined;
|
|
975
|
-
}
|
|
976
|
-
}
|
|
977
|
-
|
|
978
855
|
function actorTerminalKind(result: number): ZLinkFrameworkInternalErrorKind {
|
|
979
856
|
switch (result) {
|
|
980
857
|
case RequestResult.TimedOut:
|
|
@@ -990,7 +867,7 @@ function actorTerminalKind(result: number): ZLinkFrameworkInternalErrorKind {
|
|
|
990
867
|
case RequestResult.NotConnected:
|
|
991
868
|
return ZLinkFrameworkInternalErrorKind.RouteNotConnected;
|
|
992
869
|
// A terminal-only conflict/busy on a remote actor reply is the target's
|
|
993
|
-
// stale/owner state:
|
|
870
|
+
// stale/owner state: ActorLocationStale (Unavailable).
|
|
994
871
|
case RequestResult.Conflict:
|
|
995
872
|
case RequestResult.Busy:
|
|
996
873
|
return ZLinkFrameworkInternalErrorKind.ActorLocationStale;
|
|
@@ -999,8 +876,11 @@ function actorTerminalKind(result: number): ZLinkFrameworkInternalErrorKind {
|
|
|
999
876
|
}
|
|
1000
877
|
}
|
|
1001
878
|
|
|
879
|
+
// The shared table preserves Actor fine kinds; without a recognized fine code,
|
|
880
|
+
// the remote owner/queue terminal supplies the classification.
|
|
1002
881
|
function mapRequestResult(result: number, failureErrno: number, operationName: string): Error {
|
|
1003
|
-
const kind =
|
|
882
|
+
const kind =
|
|
883
|
+
internalFrameworkErrorKindFromWireFailureCode(failureErrno) ?? actorTerminalKind(result);
|
|
1004
884
|
return createInternalFrameworkException(
|
|
1005
885
|
kind,
|
|
1006
886
|
`${operationName} failed with request result ${result}` +
|
|
@@ -1008,13 +888,6 @@ function mapRequestResult(result: number, failureErrno: number, operationName: s
|
|
|
1008
888
|
);
|
|
1009
889
|
}
|
|
1010
890
|
|
|
1011
|
-
function mapRequestError(
|
|
1012
|
-
error: { readonly result: number; readonly failureErrno?: number },
|
|
1013
|
-
operationName: string
|
|
1014
|
-
): Error {
|
|
1015
|
-
return mapRequestResult(error.result, error.failureErrno ?? 0, operationName);
|
|
1016
|
-
}
|
|
1017
|
-
|
|
1018
891
|
function routeNotConnected(message: string, cause?: unknown): ZLinkFrameworkException {
|
|
1019
892
|
return createInternalFrameworkException(
|
|
1020
893
|
ZLinkFrameworkInternalErrorKind.RouteNotConnected,
|
|
@@ -1,45 +1,51 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
type RoutingId,
|
|
3
|
+
type SpotId,
|
|
4
|
+
type ZLinkActor,
|
|
5
|
+
type ZLinkActorContext,
|
|
6
|
+
type ZLinkActorJoinCompletion,
|
|
7
|
+
type ZLinkActorJoinEntrySpotCall,
|
|
8
|
+
type ZLinkActorJoinSpotCall,
|
|
9
|
+
type ZLinkBoundSession,
|
|
10
|
+
type ZLinkBoundSessionSendCall,
|
|
11
|
+
ZLinkEncodedPayload,
|
|
12
|
+
ZLinkFrameworkException,
|
|
13
|
+
ZLinkMessage,
|
|
14
|
+
type ZLinkMessageSerializer
|
|
15
15
|
} from '../../contracts';
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
import type { Message } from '../../contracts/Common/Message';
|
|
18
|
-
import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
|
|
19
|
-
import { type ZLinkMessageSerializer } from '../../contracts';
|
|
20
|
-
import { ZLinkConfigurationException } from '../configuration';
|
|
21
18
|
import {
|
|
22
|
-
ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome,
|
|
23
19
|
ZLinkRuntimeDispatchErrorAction as ZLinkDispatchErrorAction,
|
|
24
20
|
ZLinkRuntimeDispatchErrorReason as ZLinkDispatchErrorReason,
|
|
25
21
|
ZLinkDispatchErrorSurface,
|
|
26
|
-
ZLinkDispatchMessageKind
|
|
22
|
+
ZLinkDispatchMessageKind,
|
|
23
|
+
ZLinkRuntimeMessageFlowOutcome as ZLinkMessageFlowOutcome
|
|
27
24
|
} from '../../contracts/Dispatch/ZLinkDispatchOptions';
|
|
25
|
+
import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
|
|
26
|
+
import { ZLinkConfigurationException } from '../configuration';
|
|
27
|
+
import { dispatchErrorDetails } from '../diagnostics/dispatch-error-details';
|
|
28
|
+
import { captureZLinkSpotSerialTurn } from '../execution';
|
|
29
|
+
import { createRandomOperationIdentity } from '../foundation/operation-identity';
|
|
30
|
+
import {
|
|
31
|
+
ZLinkFrameworkInternalErrorKind,
|
|
32
|
+
createInternalFrameworkException
|
|
33
|
+
} from '../framework-errors-internal';
|
|
28
34
|
import { encodeFrameworkPayloadMessage } from '../messaging/payload-codec';
|
|
29
|
-
import {
|
|
30
|
-
import type {
|
|
31
|
-
ZLinkActorBoundSessionFactory,
|
|
32
|
-
ZLinkActorJoinCoordinator
|
|
33
|
-
} from './actor-runtime-contracts';
|
|
34
|
-
import type { ZLinkActorManagerOptions } from './actor-runtime-contracts';
|
|
35
|
+
import { deferActorJoin } from './actor-join-deferred-scope';
|
|
35
36
|
import {
|
|
36
37
|
ZLINK_ACTOR_LIFECYCLE_SNAPSHOT,
|
|
37
38
|
type ZLinkActorLifecycleSnapshotSource
|
|
38
39
|
} from './actor-lifecycle-snapshot';
|
|
39
|
-
import {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
import type {
|
|
41
|
+
ZLinkActorBoundSessionFactory,
|
|
42
|
+
ZLinkActorJoinCoordinator,
|
|
43
|
+
ZLinkActorManagerOptions
|
|
44
|
+
} from './actor-runtime-contracts';
|
|
45
|
+
import { ZLinkActorRuntimeState, toFrameworkActorRef } from './actor-runtime-state';
|
|
46
|
+
const DEFAULT_ACTOR_JOIN_TIMEOUT_MS = 5_000;
|
|
47
|
+
|
|
48
|
+
const MAX_ACTOR_JOIN_TIMEOUT_MS = 2_147_483_647;
|
|
43
49
|
|
|
44
50
|
export const ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME = Symbol('zlink.actor.join-entry-spot-runtime');
|
|
45
51
|
|
|
@@ -166,7 +172,7 @@ export class DefaultZLinkActorContext implements ZLinkActorContext {
|
|
|
166
172
|
}
|
|
167
173
|
|
|
168
174
|
class DefaultZLinkActorJoinSpotCall implements ZLinkActorJoinSpotCall {
|
|
169
|
-
private timeoutMs =
|
|
175
|
+
private timeoutMs: number = DEFAULT_ACTOR_JOIN_TIMEOUT_MS;
|
|
170
176
|
private deferred = false;
|
|
171
177
|
private readonly turn = captureZLinkSpotSerialTurn();
|
|
172
178
|
|
|
@@ -212,7 +218,7 @@ class DefaultZLinkActorJoinSpotCall implements ZLinkActorJoinSpotCall {
|
|
|
212
218
|
discarded = true;
|
|
213
219
|
this.state.endDeferredJoin();
|
|
214
220
|
try {
|
|
215
|
-
await this.coordinator.abortDeferredJoin?.(this.actor, this.state
|
|
221
|
+
await this.coordinator.abortDeferredJoin?.(this.actor, this.state);
|
|
216
222
|
} finally {
|
|
217
223
|
deadline.close();
|
|
218
224
|
requestMessage.close();
|
|
@@ -228,7 +234,7 @@ class DefaultZLinkActorJoinSpotCall implements ZLinkActorJoinSpotCall {
|
|
|
228
234
|
// The provisional ingress fence is installed only after the
|
|
229
235
|
// handler terminal. Target admission starts before reply encoding,
|
|
230
236
|
// while completion and finalization remain in execute().
|
|
231
|
-
this.coordinator.beginDeferredJoin?.(this.actor, this.state
|
|
237
|
+
this.coordinator.beginDeferredJoin?.(this.actor, this.state);
|
|
232
238
|
pendingJoin = this.coordinator.joinSpot(
|
|
233
239
|
this.actor,
|
|
234
240
|
this.state,
|
|
@@ -268,7 +274,7 @@ class DefaultZLinkActorJoinSpotCall implements ZLinkActorJoinSpotCall {
|
|
|
268
274
|
} catch (error) {
|
|
269
275
|
this.state.endDeferredJoin();
|
|
270
276
|
await this.coordinator
|
|
271
|
-
.abortDeferredJoin?.(this.actor, this.state
|
|
277
|
+
.abortDeferredJoin?.(this.actor, this.state)
|
|
272
278
|
.catch(() => undefined);
|
|
273
279
|
await notifyJoinFailure(this.actor, operationId, error, this.coordinator);
|
|
274
280
|
return;
|
|
@@ -305,7 +311,7 @@ class DefaultZLinkActorJoinSpotCall implements ZLinkActorJoinSpotCall {
|
|
|
305
311
|
}
|
|
306
312
|
|
|
307
313
|
class DefaultZLinkActorJoinEntrySpotCall implements ZLinkActorJoinEntrySpotCall {
|
|
308
|
-
private timeoutMs =
|
|
314
|
+
private timeoutMs: number = DEFAULT_ACTOR_JOIN_TIMEOUT_MS;
|
|
309
315
|
private deferred = false;
|
|
310
316
|
private readonly turn = captureZLinkSpotSerialTurn();
|
|
311
317
|
|
|
@@ -350,7 +356,7 @@ class DefaultZLinkActorJoinEntrySpotCall implements ZLinkActorJoinEntrySpotCall
|
|
|
350
356
|
discarded = true;
|
|
351
357
|
this.state.endDeferredJoin();
|
|
352
358
|
try {
|
|
353
|
-
await this.coordinator.abortDeferredJoin?.(this.actor, this.state
|
|
359
|
+
await this.coordinator.abortDeferredJoin?.(this.actor, this.state);
|
|
354
360
|
} finally {
|
|
355
361
|
deadline.close();
|
|
356
362
|
requestMessage.close();
|
|
@@ -363,7 +369,7 @@ class DefaultZLinkActorJoinEntrySpotCall implements ZLinkActorJoinEntrySpotCall
|
|
|
363
369
|
prepared = true;
|
|
364
370
|
this.state.endDeferredJoin();
|
|
365
371
|
try {
|
|
366
|
-
this.coordinator.beginDeferredJoin?.(this.actor, this.state
|
|
372
|
+
this.coordinator.beginDeferredJoin?.(this.actor, this.state);
|
|
367
373
|
pendingJoin = this.coordinator.joinEntrySpot(
|
|
368
374
|
this.actor,
|
|
369
375
|
this.state,
|
|
@@ -403,7 +409,7 @@ class DefaultZLinkActorJoinEntrySpotCall implements ZLinkActorJoinEntrySpotCall
|
|
|
403
409
|
} catch (error) {
|
|
404
410
|
this.state.endDeferredJoin();
|
|
405
411
|
await this.coordinator
|
|
406
|
-
.abortDeferredJoin?.(this.actor, this.state
|
|
412
|
+
.abortDeferredJoin?.(this.actor, this.state)
|
|
407
413
|
.catch(() => undefined);
|
|
408
414
|
await notifyJoinFailure(this.actor, operationId, error, this.coordinator);
|
|
409
415
|
return;
|
|
@@ -480,9 +486,9 @@ function encodeJoinRequest(
|
|
|
480
486
|
|
|
481
487
|
function validateJoinTimeout(timeoutMs: number): number {
|
|
482
488
|
const rounded = Math.ceil(timeoutMs);
|
|
483
|
-
if (!Number.isFinite(timeoutMs) || rounded < 1 || rounded >
|
|
489
|
+
if (!Number.isFinite(timeoutMs) || rounded < 1 || rounded > MAX_ACTOR_JOIN_TIMEOUT_MS) {
|
|
484
490
|
throw new ZLinkConfigurationException(
|
|
485
|
-
|
|
491
|
+
`Actor join timeout must be a finite value from 1 through ${MAX_ACTOR_JOIN_TIMEOUT_MS} milliseconds.`
|
|
486
492
|
);
|
|
487
493
|
}
|
|
488
494
|
return rounded;
|