@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
|
@@ -2,23 +2,25 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultZLinkActorClient = void 0;
|
|
4
4
|
exports.forwardEncodedActorPacket = forwardEncodedActorPacket;
|
|
5
|
-
const
|
|
6
|
-
const runtime_message_1 = require("../backend/runtime-message");
|
|
7
|
-
const runtime_values_1 = require("../backend/runtime-values");
|
|
5
|
+
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
8
6
|
const contracts_1 = require("../../contracts");
|
|
9
|
-
const
|
|
10
|
-
const submission_result_1 = require("../messaging/submission-result");
|
|
11
|
-
const backend_1 = require("../backend");
|
|
7
|
+
const CoreTypes_1 = require("../../contracts/Common/CoreTypes");
|
|
12
8
|
const abort_1 = require("../abort");
|
|
13
|
-
const
|
|
9
|
+
const backend_1 = require("../backend");
|
|
10
|
+
const runtime_message_1 = require("../backend/runtime-message");
|
|
11
|
+
const runtime_values_1 = require("../backend/runtime-values");
|
|
12
|
+
const configuration_1 = require("../configuration");
|
|
13
|
+
const execution_1 = require("../execution");
|
|
14
|
+
const actor_request_deadline_1 = require("./actor-request-deadline");
|
|
15
|
+
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
14
16
|
const packet_name_1 = require("../messaging/packet-name");
|
|
17
|
+
const payload_codec_1 = require("../messaging/payload-codec");
|
|
18
|
+
const submission_result_1 = require("../messaging/submission-result");
|
|
15
19
|
const protocol_1 = require("../streams/protocol");
|
|
20
|
+
const actor_execution_context_1 = require("./actor-execution-context");
|
|
21
|
+
const actor_message_follow_context_1 = require("./actor-message-follow-context");
|
|
16
22
|
const actor_packet_relay_wire_1 = require("./actor-packet-relay-wire");
|
|
17
23
|
const actor_routed_json_request_1 = require("./actor-routed-json-request");
|
|
18
|
-
const actor_message_follow_context_1 = require("./actor-message-follow-context");
|
|
19
|
-
const execution_1 = require("../execution");
|
|
20
|
-
const configuration_1 = require("../configuration");
|
|
21
|
-
const actor_execution_context_1 = require("./actor-execution-context");
|
|
22
24
|
class DefaultZLinkActorClient {
|
|
23
25
|
options;
|
|
24
26
|
constructor(options) {
|
|
@@ -53,7 +55,7 @@ class DefaultZLinkActorClient {
|
|
|
53
55
|
submissions.push(duplicate);
|
|
54
56
|
}
|
|
55
57
|
await (0, abort_1.awaitWithAbort)(Promise.all(submissions), signal);
|
|
56
|
-
return
|
|
58
|
+
return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
|
|
57
59
|
}
|
|
58
60
|
const node = this.requireNode(meshName);
|
|
59
61
|
if (this.options.routeTransport !== undefined &&
|
|
@@ -66,8 +68,8 @@ class DefaultZLinkActorClient {
|
|
|
66
68
|
actorRef: actor,
|
|
67
69
|
returnResponse: false,
|
|
68
70
|
messageFollowContext: messageFollow
|
|
69
|
-
}), { packetName:
|
|
70
|
-
return
|
|
71
|
+
}), { packetName: actor_packet_relay_wire_1.ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET });
|
|
72
|
+
return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
|
|
71
73
|
}
|
|
72
74
|
return await this.submitActorSend(meshName, toBackendActorRef(actor), parts);
|
|
73
75
|
}
|
|
@@ -89,7 +91,7 @@ class DefaultZLinkActorClient {
|
|
|
89
91
|
const effectiveTimeoutMs = timeoutMs ?? this.options.defaultRequestTimeoutMs;
|
|
90
92
|
const deadlineMs = effectiveTimeoutMs === undefined ? undefined : performance.now() + effectiveTimeoutMs;
|
|
91
93
|
const deadlineUnixMs = effectiveTimeoutMs === undefined ? undefined : Date.now() + effectiveTimeoutMs;
|
|
92
|
-
const route = await this.resolveActorRoute(actorId, signal);
|
|
94
|
+
const route = await this.resolveActorRoute(actorId, signal, deadlineMs);
|
|
93
95
|
if (waitPolicy === 'async' &&
|
|
94
96
|
sourceSpotId !== undefined &&
|
|
95
97
|
sameSpotRoute(sourceSpotId, route)) {
|
|
@@ -104,9 +106,12 @@ class DefaultZLinkActorClient {
|
|
|
104
106
|
const messageFollow = createActorMessageFollowContext(route, parts, true, deadlineUnixMs, correlationId, operationId);
|
|
105
107
|
const routedActor = (0, actor_message_follow_context_1.attachActorMessageFollowContext)(actor, messageFollow);
|
|
106
108
|
try {
|
|
107
|
-
const
|
|
109
|
+
const delivery = this.options
|
|
108
110
|
.transportDeliveryGate?.()
|
|
109
|
-
?.waitBeforeSubmit(actorId, 'request', signal)
|
|
111
|
+
?.waitBeforeSubmit(actorId, 'request', signal);
|
|
112
|
+
const submissionCopies = delivery === undefined
|
|
113
|
+
? 1
|
|
114
|
+
: ((await (0, actor_request_deadline_1.waitActorReply)(delivery, actorId, deadlineMs, signal)) ?? 1);
|
|
110
115
|
const handoff = this.options.handoffCapture?.(meshName, actor.actorId, parts, true, routedActor, deadlineUnixMs);
|
|
111
116
|
if (handoff !== undefined) {
|
|
112
117
|
const submissions = [handoff];
|
|
@@ -115,10 +120,10 @@ class DefaultZLinkActorClient {
|
|
|
115
120
|
if (duplicate !== undefined)
|
|
116
121
|
submissions.push(duplicate);
|
|
117
122
|
}
|
|
118
|
-
const replies = await
|
|
123
|
+
const replies = await (0, actor_request_deadline_1.waitActorReply)(Promise.all(submissions), actorId, deadlineMs, signal);
|
|
119
124
|
return replies[0];
|
|
120
125
|
}
|
|
121
|
-
return await this.submitActorRequest(meshName, toBackendActorRef(actor), parts, remainingActorRequestTimeout(actorId, deadlineMs), signal, route, messageFollow);
|
|
126
|
+
return await this.submitActorRequest(meshName, toBackendActorRef(actor), parts, (0, actor_request_deadline_1.remainingActorRequestTimeout)(actorId, deadlineMs), signal, route, messageFollow);
|
|
122
127
|
}
|
|
123
128
|
catch (error) {
|
|
124
129
|
if (isStaleActorError(error)) {
|
|
@@ -132,12 +137,12 @@ class DefaultZLinkActorClient {
|
|
|
132
137
|
closeMessages(parts);
|
|
133
138
|
}
|
|
134
139
|
}
|
|
135
|
-
async resolveActorRoute(actorId, signal) {
|
|
140
|
+
async resolveActorRoute(actorId, signal, deadlineMs) {
|
|
136
141
|
const resolver = this.options.locationResolver();
|
|
137
142
|
if (resolver === undefined) {
|
|
138
143
|
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.InvalidConfiguration, 'Actor direct messaging requires a Location Store.');
|
|
139
144
|
}
|
|
140
|
-
const resolution = await resolver.resolveDirectActorRoute(actorId, signal);
|
|
145
|
+
const resolution = await resolver.resolveDirectActorRoute(actorId, signal, deadlineMs);
|
|
141
146
|
if (resolution.kind === 'missing') {
|
|
142
147
|
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `Actor route '${actorId}' was not found.`);
|
|
143
148
|
}
|
|
@@ -191,17 +196,15 @@ class DefaultZLinkActorClient {
|
|
|
191
196
|
async submitActorSend(meshName, actor, parts) {
|
|
192
197
|
const node = this.requireNode(meshName);
|
|
193
198
|
try {
|
|
194
|
-
return
|
|
199
|
+
return (0, submission_result_1.classifySubmitResult)(await node.sendToActor(actor, toMessageLikeParts(parts), {
|
|
195
200
|
flags: runtime_values_1.ZLINK_BACKEND_SEND_NONE
|
|
196
201
|
}), 'Actor send');
|
|
197
202
|
}
|
|
198
203
|
catch (error) {
|
|
199
204
|
if ((0, runtime_values_1.isZLinkBackendResultError)(error)) {
|
|
200
|
-
return
|
|
205
|
+
return (0, submission_result_1.classifySubmitResult)(error.result, 'Actor send', error.phase);
|
|
201
206
|
}
|
|
202
|
-
throw (
|
|
203
|
-
? mapRequestError(error, 'Actor send')
|
|
204
|
-
: mapSubmitError(error, 'Actor send');
|
|
207
|
+
throw mapSubmitError(error, 'Actor send');
|
|
205
208
|
}
|
|
206
209
|
}
|
|
207
210
|
async submitActorRequest(meshName, actor, parts, timeoutMs, signal, route, messageFollowContext) {
|
|
@@ -296,36 +299,10 @@ function remoteRelayErrorKind(value) {
|
|
|
296
299
|
? value
|
|
297
300
|
: framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
|
|
298
301
|
}
|
|
299
|
-
function remainingActorRequestTimeout(actorId, deadlineMs) {
|
|
300
|
-
if (deadlineMs === undefined)
|
|
301
|
-
return undefined;
|
|
302
|
-
const remaining = deadlineMs - performance.now();
|
|
303
|
-
if (remaining <= 0) {
|
|
304
|
-
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.DeadlineExceeded, `Actor request '${actorId}' exceeded its deadline before submission.`);
|
|
305
|
-
}
|
|
306
|
-
return Math.max(1, Math.ceil(remaining));
|
|
307
|
-
}
|
|
308
302
|
function requireActorId(actorId) {
|
|
309
303
|
const byteLength = Buffer.byteLength(actorId, 'utf8');
|
|
310
|
-
if (byteLength < 1 || byteLength >
|
|
311
|
-
throw new configuration_1.ZLinkConfigurationException(
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
async function waitHandoffReply(reply, timeoutMs) {
|
|
315
|
-
if (timeoutMs === undefined)
|
|
316
|
-
return (await reply);
|
|
317
|
-
let deadline;
|
|
318
|
-
try {
|
|
319
|
-
return await Promise.race([
|
|
320
|
-
reply,
|
|
321
|
-
new Promise((_resolve, reject) => {
|
|
322
|
-
deadline = setTimeout(() => reject((0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed, 'Actor handoff request timed out.', true)), timeoutMs);
|
|
323
|
-
})
|
|
324
|
-
]);
|
|
325
|
-
}
|
|
326
|
-
finally {
|
|
327
|
-
if (deadline !== undefined)
|
|
328
|
-
clearTimeout(deadline);
|
|
304
|
+
if (byteLength < 1 || byteLength > CoreTypes_1.ZLINK_MAX_ACTOR_ID_BYTES) {
|
|
305
|
+
throw new configuration_1.ZLinkConfigurationException(`Actor ID must contain 1..${CoreTypes_1.ZLINK_MAX_ACTOR_ID_BYTES} UTF-8 bytes.`);
|
|
329
306
|
}
|
|
330
307
|
}
|
|
331
308
|
async function forwardEncodedActorPacket(node, completions, actor, header, payload, returnResponse, timeoutMs, serializers) {
|
|
@@ -493,97 +470,20 @@ function decodeActorReplyPayload(kind, payload, serializers, packetName) {
|
|
|
493
470
|
const wireKind = error.kind;
|
|
494
471
|
const publicKind = typeof wireKind === 'number' &&
|
|
495
472
|
Number.isInteger(wireKind) &&
|
|
496
|
-
wireKind >=
|
|
497
|
-
wireKind <=
|
|
473
|
+
wireKind >= contracts_1.ZLinkFrameworkErrorKind.NotFound &&
|
|
474
|
+
wireKind <= contracts_1.ZLinkFrameworkErrorKind.InternalFailure
|
|
498
475
|
? wireKind
|
|
499
|
-
:
|
|
500
|
-
throw new
|
|
476
|
+
: contracts_1.ZLinkFrameworkErrorKind.InternalFailure;
|
|
477
|
+
throw new contracts_1.ZLinkFrameworkException(publicKind, error.message ?? 'Actor request failed.');
|
|
501
478
|
}
|
|
502
|
-
return (0, payload_codec_1.decodeFrameworkPayloadMessage)(payload, serializers, undefined,
|
|
479
|
+
return (0, payload_codec_1.decodeFrameworkPayloadMessage)(payload, serializers, undefined, stream_wire_1.ZlinkStreamContentType.Json, packetName, 'reply');
|
|
503
480
|
}
|
|
504
481
|
function mapSubmitError(error, operationName) {
|
|
505
|
-
if (error instanceof
|
|
482
|
+
if (error instanceof contracts_1.ZLinkFrameworkException) {
|
|
506
483
|
return error;
|
|
507
484
|
}
|
|
508
|
-
if ((0, runtime_values_1.isZLinkBackendResultError)(error)) {
|
|
509
|
-
switch (error.result) {
|
|
510
|
-
case runtime_values_1.SubmitResult.NotConnected:
|
|
511
|
-
return routeNotConnected(`${operationName} failed because the target route is not connected.`, error);
|
|
512
|
-
case runtime_values_1.SubmitResult.NotFound:
|
|
513
|
-
return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `${operationName} failed because the actor route was not found.`, false, error);
|
|
514
|
-
default:
|
|
515
|
-
return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed, `${operationName} failed with submit result ${error.result}.`, false, error);
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
485
|
return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, `${operationName} failed before a reply was received.`, true, error);
|
|
519
486
|
}
|
|
520
|
-
function mapSubmitResult(result, operationName) {
|
|
521
|
-
switch (result) {
|
|
522
|
-
case runtime_values_1.SubmitResult.Ok:
|
|
523
|
-
return submitted();
|
|
524
|
-
case runtime_values_1.SubmitResult.Backpressured:
|
|
525
|
-
case runtime_values_1.SubmitResult.NotAdmitted:
|
|
526
|
-
return { status: submission_result_1.ZLinkSubmitStatus.Backpressured };
|
|
527
|
-
case runtime_values_1.SubmitResult.NotConnected:
|
|
528
|
-
return { status: submission_result_1.ZLinkSubmitStatus.RouteNotConnected };
|
|
529
|
-
case runtime_values_1.SubmitResult.NotFound:
|
|
530
|
-
return { status: submission_result_1.ZLinkSubmitStatus.TargetNotFound };
|
|
531
|
-
case runtime_values_1.SubmitResult.Terminated:
|
|
532
|
-
return { status: submission_result_1.ZLinkSubmitStatus.Shutdown };
|
|
533
|
-
default:
|
|
534
|
-
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed, `${operationName} failed with submit result ${result}.`);
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
function submitted() {
|
|
538
|
-
return { status: submission_result_1.ZLinkSubmitStatus.Submitted };
|
|
539
|
-
}
|
|
540
|
-
// Ownership-aware Actor remote-reply translator (spec 32:81-118, 99-103):
|
|
541
|
-
// the reply comes from a remote target, so a fine framework failure code
|
|
542
|
-
// refines the coarse terminal, and a terminal-only conflict/busy is the
|
|
543
|
-
// target's owner/queue state (retryable stale/Unavailable), never a
|
|
544
|
-
// source-owned queue exhaustion. Backpressure never appears on this reply
|
|
545
|
-
// path. Internal kinds are preserved so the stale-actor re-resolve retry
|
|
546
|
-
// (isStaleActorError) keeps working.
|
|
547
|
-
function actorFailureCodeKind(failureErrno) {
|
|
548
|
-
switch (failureErrno) {
|
|
549
|
-
case 3:
|
|
550
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorAlreadyExists;
|
|
551
|
-
case 4:
|
|
552
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorTypeMismatch;
|
|
553
|
-
case 7:
|
|
554
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.SpotTypeMismatch;
|
|
555
|
-
case 8:
|
|
556
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorSessionNotBound;
|
|
557
|
-
case 9:
|
|
558
|
-
case 14:
|
|
559
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestTargetNotFound;
|
|
560
|
-
case 12:
|
|
561
|
-
case 16:
|
|
562
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestProtocolError;
|
|
563
|
-
// routeNotConnected(13) and a remote worker queue full(18) are Unavailable.
|
|
564
|
-
case 13:
|
|
565
|
-
case 18:
|
|
566
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected;
|
|
567
|
-
case 15:
|
|
568
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestRejected;
|
|
569
|
-
case 19:
|
|
570
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.WorkerTimedOut;
|
|
571
|
-
case 17:
|
|
572
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
|
|
573
|
-
case 20:
|
|
574
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.WorkerFailed;
|
|
575
|
-
case 21:
|
|
576
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale;
|
|
577
|
-
case 33:
|
|
578
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorGenerationStale;
|
|
579
|
-
case 34:
|
|
580
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorMoving;
|
|
581
|
-
case 35:
|
|
582
|
-
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RelocationDataLost;
|
|
583
|
-
default:
|
|
584
|
-
return undefined;
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
487
|
function actorTerminalKind(result) {
|
|
588
488
|
switch (result) {
|
|
589
489
|
case runtime_values_1.RequestResult.TimedOut:
|
|
@@ -599,7 +499,7 @@ function actorTerminalKind(result) {
|
|
|
599
499
|
case runtime_values_1.RequestResult.NotConnected:
|
|
600
500
|
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected;
|
|
601
501
|
// A terminal-only conflict/busy on a remote actor reply is the target's
|
|
602
|
-
// stale/owner state:
|
|
502
|
+
// stale/owner state: ActorLocationStale (Unavailable).
|
|
603
503
|
case runtime_values_1.RequestResult.Conflict:
|
|
604
504
|
case runtime_values_1.RequestResult.Busy:
|
|
605
505
|
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale;
|
|
@@ -607,19 +507,18 @@ function actorTerminalKind(result) {
|
|
|
607
507
|
return framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RequestFailed;
|
|
608
508
|
}
|
|
609
509
|
}
|
|
510
|
+
// The shared table preserves Actor fine kinds; without a recognized fine code,
|
|
511
|
+
// the remote owner/queue terminal supplies the classification.
|
|
610
512
|
function mapRequestResult(result, failureErrno, operationName) {
|
|
611
|
-
const kind =
|
|
513
|
+
const kind = (0, framework_errors_internal_1.internalFrameworkErrorKindFromWireFailureCode)(failureErrno) ?? actorTerminalKind(result);
|
|
612
514
|
return (0, framework_errors_internal_1.createInternalFrameworkException)(kind, `${operationName} failed with request result ${result}` +
|
|
613
515
|
(failureErrno !== 0 ? ` (failure code ${failureErrno}).` : '.'));
|
|
614
516
|
}
|
|
615
|
-
function mapRequestError(error, operationName) {
|
|
616
|
-
return mapRequestResult(error.result, error.failureErrno ?? 0, operationName);
|
|
617
|
-
}
|
|
618
517
|
function routeNotConnected(message, cause) {
|
|
619
518
|
return (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.RouteNotConnected, message, true, cause);
|
|
620
519
|
}
|
|
621
520
|
function isStaleActorError(error) {
|
|
622
|
-
return (error instanceof
|
|
521
|
+
return (error instanceof contracts_1.ZLinkFrameworkException &&
|
|
623
522
|
(0, framework_errors_internal_1.internalFrameworkErrorKind)(error) === framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorLocationStale);
|
|
624
523
|
}
|
|
625
524
|
function actorLocationStale(actorId, cause) {
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { type ZLinkMessageSerializer } from '../../contracts';
|
|
3
|
-
import { ZLinkActorRuntimeState } from './actor-runtime-state';
|
|
4
|
-
import type { ZLinkActorBoundSessionFactory, ZLinkActorJoinCoordinator } from './actor-runtime-contracts';
|
|
5
|
-
import type { ZLinkActorManagerOptions } from './actor-runtime-contracts';
|
|
1
|
+
import { type RoutingId, type SpotId, type ZLinkActorContext, type ZLinkActorJoinEntrySpotCall, type ZLinkActorJoinSpotCall, type ZLinkBoundSession, type ZLinkMessageSerializer } from '../../contracts';
|
|
6
2
|
import { ZLINK_ACTOR_LIFECYCLE_SNAPSHOT, type ZLinkActorLifecycleSnapshotSource } from './actor-lifecycle-snapshot';
|
|
3
|
+
import type { ZLinkActorBoundSessionFactory, ZLinkActorJoinCoordinator, ZLinkActorManagerOptions } from './actor-runtime-contracts';
|
|
4
|
+
import { ZLinkActorRuntimeState } from './actor-runtime-state';
|
|
7
5
|
export declare const ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME: unique symbol;
|
|
8
6
|
export declare class DefaultZLinkActorContext implements ZLinkActorContext {
|
|
9
7
|
private readonly state;
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultZLinkActorContext = exports.ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME = void 0;
|
|
4
|
-
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
5
4
|
const contracts_1 = require("../../contracts");
|
|
5
|
+
const ZLinkDispatchOptions_1 = require("../../contracts/Dispatch/ZLinkDispatchOptions");
|
|
6
6
|
const runtime_message_1 = require("../backend/runtime-message");
|
|
7
7
|
const configuration_1 = require("../configuration");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const actor_runtime_state_1 = require("./actor-runtime-state");
|
|
11
|
-
const actor_lifecycle_snapshot_1 = require("./actor-lifecycle-snapshot");
|
|
8
|
+
const dispatch_error_details_1 = require("../diagnostics/dispatch-error-details");
|
|
9
|
+
const execution_1 = require("../execution");
|
|
12
10
|
const operation_identity_1 = require("../foundation/operation-identity");
|
|
11
|
+
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
12
|
+
const payload_codec_1 = require("../messaging/payload-codec");
|
|
13
13
|
const actor_join_deferred_scope_1 = require("./actor-join-deferred-scope");
|
|
14
|
-
const
|
|
15
|
-
const
|
|
14
|
+
const actor_lifecycle_snapshot_1 = require("./actor-lifecycle-snapshot");
|
|
15
|
+
const actor_runtime_state_1 = require("./actor-runtime-state");
|
|
16
|
+
const DEFAULT_ACTOR_JOIN_TIMEOUT_MS = 5_000;
|
|
17
|
+
const MAX_ACTOR_JOIN_TIMEOUT_MS = 2_147_483_647;
|
|
16
18
|
exports.ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME = Symbol('zlink.actor.join-entry-spot-runtime');
|
|
17
19
|
class DefaultZLinkActorContext {
|
|
18
20
|
state;
|
|
@@ -105,7 +107,7 @@ class DefaultZLinkActorJoinSpotCall {
|
|
|
105
107
|
spotId;
|
|
106
108
|
request;
|
|
107
109
|
messageSerializers;
|
|
108
|
-
timeoutMs =
|
|
110
|
+
timeoutMs = DEFAULT_ACTOR_JOIN_TIMEOUT_MS;
|
|
109
111
|
deferred = false;
|
|
110
112
|
turn = (0, execution_1.captureZLinkSpotSerialTurn)();
|
|
111
113
|
constructor(state, actor, coordinator, spotId, request, messageSerializers) {
|
|
@@ -231,7 +233,7 @@ class DefaultZLinkActorJoinEntrySpotCall {
|
|
|
231
233
|
coordinator;
|
|
232
234
|
request;
|
|
233
235
|
messageSerializers;
|
|
234
|
-
timeoutMs =
|
|
236
|
+
timeoutMs = DEFAULT_ACTOR_JOIN_TIMEOUT_MS;
|
|
235
237
|
deferred = false;
|
|
236
238
|
turn = (0, execution_1.captureZLinkSpotSerialTurn)();
|
|
237
239
|
constructor(state, actor, coordinator, request, messageSerializers) {
|
|
@@ -375,8 +377,8 @@ function encodeJoinRequest(request, serializers) {
|
|
|
375
377
|
}
|
|
376
378
|
function validateJoinTimeout(timeoutMs) {
|
|
377
379
|
const rounded = Math.ceil(timeoutMs);
|
|
378
|
-
if (!Number.isFinite(timeoutMs) || rounded < 1 || rounded >
|
|
379
|
-
throw new configuration_1.ZLinkConfigurationException(
|
|
380
|
+
if (!Number.isFinite(timeoutMs) || rounded < 1 || rounded > MAX_ACTOR_JOIN_TIMEOUT_MS) {
|
|
381
|
+
throw new configuration_1.ZLinkConfigurationException(`Actor join timeout must be a finite value from 1 through ${MAX_ACTOR_JOIN_TIMEOUT_MS} milliseconds.`);
|
|
380
382
|
}
|
|
381
383
|
return rounded;
|
|
382
384
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { ActorRef, RoutingId } from '../../contracts';
|
|
1
|
+
import { type ActorRef, type RoutingId } from '../../contracts';
|
|
3
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
4
3
|
import type { ZLinkMessageFollowOrigin } from '../foundation/service-runtime-contracts';
|
|
4
|
+
import { ZLinkFrameworkInternalErrorKind } from '../framework-errors-internal';
|
|
5
5
|
import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
|
|
6
|
+
import { type ZLinkActorMessageFollowContext, type ZLinkActorMessageFollowOwnerFence } from './actor-message-follow-context';
|
|
6
7
|
import type { ZLinkActorRoutedJoinTransport } from './actor-routed-join-transport';
|
|
7
8
|
import type { ZLinkRemoteBoundSessionTarget } from './actor-runtime-state';
|
|
8
|
-
|
|
9
|
-
export declare const DEFAULT_MESSAGE_FOLLOW_DURATION_MS = 30000;
|
|
9
|
+
export declare const DEFAULT_MESSAGE_FOLLOW_DURATION_MS: number;
|
|
10
10
|
export interface ZLinkActorHandoffPacket {
|
|
11
11
|
readonly index: number;
|
|
12
12
|
readonly header: string;
|
|
@@ -3,18 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ZLinkActorHandoffCoordinator = exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS = void 0;
|
|
4
4
|
exports.decodeHandoffPacket = decodeHandoffPacket;
|
|
5
5
|
exports.replayActorHandoffBacklog = replayActorHandoffBacklog;
|
|
6
|
-
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
7
|
-
const runtime_message_1 = require("../backend/runtime-message");
|
|
8
6
|
const contracts_1 = require("../../contracts");
|
|
7
|
+
const Options_1 = require("../../contracts/Locations/Options");
|
|
8
|
+
const application_job_queue_scope_1 = require("../application-jobs/application-job-queue-scope");
|
|
9
|
+
const runtime_message_1 = require("../backend/runtime-message");
|
|
9
10
|
const message_follow_suppression_registry_1 = require("../foundation/message-follow-suppression-registry");
|
|
11
|
+
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
10
12
|
const routing_id_1 = require("../routing-id");
|
|
11
|
-
const application_job_queue_scope_1 = require("../application-jobs/application-job-queue-scope");
|
|
12
13
|
const protocol_1 = require("../streams/protocol");
|
|
13
|
-
const actor_routed_json_request_1 = require("./actor-routed-json-request");
|
|
14
|
-
const actor_packet_relay_wire_1 = require("./actor-packet-relay-wire");
|
|
15
14
|
const actor_message_follow_context_1 = require("./actor-message-follow-context");
|
|
16
|
-
|
|
17
|
-
const
|
|
15
|
+
const actor_packet_relay_wire_1 = require("./actor-packet-relay-wire");
|
|
16
|
+
const actor_routed_json_request_1 = require("./actor-routed-json-request");
|
|
17
|
+
exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS = Options_1.zlinkDefaultLocationOptions.messageFollowDurationMs;
|
|
18
18
|
const RELOCATION_REPLY_RETENTION_MS = 24 * 60 * 60 * 1_000;
|
|
19
19
|
function requireExactTargetOwnerFence(actorId, fence) {
|
|
20
20
|
if (fence === undefined) {
|
|
@@ -940,7 +940,7 @@ class ZLinkActorHandoffCoordinator {
|
|
|
940
940
|
return duplicate.result;
|
|
941
941
|
}
|
|
942
942
|
const bytes = packetBytes(packet);
|
|
943
|
-
if (context.hopCount >=
|
|
943
|
+
if (context.hopCount >= actor_message_follow_context_1.ZLINK_MESSAGE_FOLLOW_MAX_HOPS) {
|
|
944
944
|
this.options.onMarker?.('message_follow_rejected', actorId);
|
|
945
945
|
return Promise.reject(actorLocationStale(actorId));
|
|
946
946
|
}
|
|
@@ -5,6 +5,7 @@ exports.actorJoinIdentity = actorJoinIdentity;
|
|
|
5
5
|
exports.createActorJoinRequest = createActorJoinRequest;
|
|
6
6
|
exports.createActorMembership = createActorMembership;
|
|
7
7
|
const configuration_1 = require("../configuration");
|
|
8
|
+
const diagnostic_text_1 = require("../diagnostics/diagnostic-text");
|
|
8
9
|
exports.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT = Symbol('zlink.actor.lifecycle-snapshot');
|
|
9
10
|
/**
|
|
10
11
|
* Identity an admission callback observes. Join admission decides on the Actor's
|
|
@@ -37,7 +38,7 @@ function lifecycleSource(actor) {
|
|
|
37
38
|
: undefined;
|
|
38
39
|
// A caller can hand in a value that carries no Framework context at all, so the
|
|
39
40
|
// failure path reports the configuration error instead of dereferencing it.
|
|
40
|
-
const actorId = context?.actorId
|
|
41
|
+
const actorId = (0, diagnostic_text_1.diagnosticTextOrAbsent)(context?.actorId);
|
|
41
42
|
const snapshot = context?.[exports.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT];
|
|
42
43
|
const source = snapshot === undefined ? undefined : snapshot.call(context);
|
|
43
44
|
if (source === undefined) {
|
|
@@ -1,26 +1,31 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { ZLinkActorJoinRuntimeResult } from './actor-runtime-contracts';
|
|
1
|
+
import { type RoutingId, type ZLinkActor, type ZLinkActorJoinOperationId, type ZLinkMessageSerializer, type ZLinkSpot, type ZLinkSpotActorJoinResult } from '../../contracts';
|
|
3
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
4
3
|
import type { ZLinkBackendActorRef, ZLinkBackendMeshNode } from '../backend/contracts';
|
|
5
4
|
import { type ZLinkMeshCompletionTable } from '../backend/mesh-completion-table';
|
|
5
|
+
import type { ZLinkLocationLifecycle } from '../locations';
|
|
6
6
|
import type { ZLinkSpotRouteTarget } from '../spots/spot-routing-internal';
|
|
7
|
+
import type { ZLinkActorJoinRelocation } from './actor-join-relocation';
|
|
8
|
+
import type { ZLinkActorJoinRuntimeResult } from './actor-runtime-contracts';
|
|
7
9
|
import { ZLinkActorRuntimeState } from './actor-runtime-state';
|
|
8
10
|
import type { ZLinkPostCommitActorBinder } from './post-commit-actor-binder';
|
|
9
|
-
import type { ZLinkPostCommitActorLocation } from './post-commit-actor-location';
|
|
10
|
-
import type { ZLinkActorJoinRelocation } from './actor-join-relocation';
|
|
11
11
|
export interface ZLinkLocalNativeActorJoinOptions {
|
|
12
|
-
readonly
|
|
12
|
+
readonly locationLifecycle?: ZLinkLocationLifecycle;
|
|
13
|
+
readonly localSpotJoin?: (spotId: RoutingId, actor: ZLinkActor, request: Message, commit: (spot: ZLinkSpot) => Promise<void>, signal?: AbortSignal, leaveSource?: () => Promise<void>, contentType?: string) => Promise<ZLinkSpotActorJoinResult>;
|
|
14
|
+
readonly localEntryJoin?: (actor: ZLinkActor, signal?: AbortSignal) => Promise<void>;
|
|
15
|
+
readonly localSourceLeave?: (actor: ZLinkActor, spotId: RoutingId | undefined, signal?: AbortSignal) => Promise<void>;
|
|
16
|
+
readonly reportSourceLeaveError: (error: unknown) => void;
|
|
13
17
|
readonly postCommitBinder?: ZLinkPostCommitActorBinder;
|
|
14
18
|
readonly completionTableProvider: () => ZLinkMeshCompletionTable | undefined;
|
|
15
19
|
readonly actorJoinRelocation?: ZLinkActorJoinRelocation;
|
|
16
20
|
readonly messageSerializers?: ReadonlyMap<string, ZLinkMessageSerializer>;
|
|
17
21
|
}
|
|
18
|
-
/**
|
|
22
|
+
/** Selects local membership commits or remote Actor relocation. */
|
|
19
23
|
export declare class ZLinkLocalNativeActorJoin {
|
|
20
24
|
private readonly options;
|
|
21
25
|
constructor(options: ZLinkLocalNativeActorJoinOptions);
|
|
22
26
|
joinSpot(node: ZLinkBackendMeshNode, actor: ZLinkActor, state: ZLinkActorRuntimeState, actorRef: ZLinkBackendActorRef, spotId: RoutingId, spotRouteTarget: ZLinkSpotRouteTarget | undefined, request: Message, timeoutMs: number | undefined, signal: AbortSignal | undefined, completionOperationId?: ZLinkActorJoinOperationId): Promise<ZLinkActorJoinRuntimeResult<Message>>;
|
|
23
27
|
joinEntrySpot(node: ZLinkBackendMeshNode, actor: ZLinkActor, state: ZLinkActorRuntimeState, actorRef: ZLinkBackendActorRef, nodeRid: RoutingId, spotRouteTarget: ZLinkSpotRouteTarget | undefined, request: Message, timeoutMs: number | undefined, signal: AbortSignal | undefined, completionOperationId?: ZLinkActorJoinOperationId): Promise<ZLinkActorJoinRuntimeResult<Message>>;
|
|
28
|
+
private joinLocal;
|
|
24
29
|
private waitForJoinCompletion;
|
|
25
30
|
private relocateRemoteActorJoin;
|
|
26
31
|
private requireCompletions;
|