@zlink-systems/framework 0.26.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
- package/dist/contracts/Channels/Calls.d.ts +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/Builders.d.ts +0 -1
- package/dist/contracts/Configuration/Configs.d.ts +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 -5
- package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
- 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 +2 -2
- package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
- package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
- package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
- 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 +49 -153
- 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 +1 -0
- package/dist/runtime/actors/actor-request-deadline.js +6 -0
- package/dist/runtime/actors/actor-retry-delay.js +2 -1
- package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
- 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 +7 -27
- 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 +3 -1
- package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
- 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 +41 -34
- 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 +4 -3
- 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 +73 -59
- package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
- package/dist/runtime/channels/channel-envelope.d.ts +1 -1
- package/dist/runtime/channels/channel-envelope.js +51 -39
- package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
- package/dist/runtime/channels/channel-outbound-operations.js +25 -42
- 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 +4 -4
- package/dist/runtime/channels/channel-runtime-manager.js +13 -10
- package/dist/runtime/channels/channel-socket-options.js +3 -12
- package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
- package/dist/runtime/channels/channel-socket-registry.js +240 -177
- package/dist/runtime/channels/channel-transports.d.ts +21 -31
- package/dist/runtime/channels/channel-transports.js +80 -62
- 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/local-spot-route-transport.d.ts +1 -1
- package/dist/runtime/channels/local-spot-route-transport.js +1 -3
- package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
- package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
- package/dist/runtime/channels/source-spot-router.d.ts +1 -1
- package/dist/runtime/channels/source-spot-router.js +2 -4
- 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.d.ts +1 -1
- package/dist/runtime/channels/spot-node-route-transport.js +5 -5
- package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
- package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
- package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
- package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
- 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 +79 -94
- 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 +11 -8
- package/dist/runtime/host/actor-packet-relay.js +54 -99
- 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 -171
- 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 +15 -28
- 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 +3 -12
- package/dist/runtime/host/spot-address-transport.js +78 -220
- 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 +309 -336
- 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/request-deadline.d.ts +3 -0
- package/dist/runtime/messaging/request-deadline.js +39 -0
- package/dist/runtime/messaging/submission-result.d.ts +4 -0
- package/dist/runtime/messaging/submission-result.js +56 -1
- 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 +7 -8
- package/dist/runtime/spots/spot-outbound.js +21 -23
- 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 +8 -4
- package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
- package/dist/runtime/streams/bound-session-service.d.ts +7 -0
- package/dist/runtime/streams/bound-session-service.js +12 -2
- package/dist/runtime/streams/index.d.ts +16 -17
- package/dist/runtime/streams/index.js +22 -23
- package/dist/runtime/streams/managed-stream.d.ts +5 -2
- package/dist/runtime/streams/managed-stream.js +20 -13
- package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
- 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 +6 -8
- package/dist/runtime/streams/session-calls.js +6 -22
- package/dist/runtime/streams/session-context.d.ts +10 -10
- package/dist/runtime/streams/session-context.js +25 -10
- 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/Actors/ZLinkActorClient.ts +1 -1
- package/src/contracts/Channels/Calls.ts +1 -1
- package/src/contracts/Common/CoreTypes.ts +7 -0
- package/src/contracts/Common/index.ts +1 -1
- package/src/contracts/Configuration/Builders.ts +0 -1
- package/src/contracts/Configuration/Configs.ts +0 -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 -71
- package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
- package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
- 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 +2 -2
- package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
- package/src/contracts/Streams/IZLinkSession.ts +2 -3
- package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
- 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 +85 -218
- 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 +4 -0
- package/src/runtime/actors/actor-retry-delay.ts +2 -1
- package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
- 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 +14 -37
- 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 +67 -10
- package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
- 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 +44 -49
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
- 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 +139 -102
- package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
- package/src/runtime/channels/channel-envelope.ts +74 -57
- package/src/runtime/channels/channel-outbound-operations.ts +40 -55
- 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 +12 -30
- package/src/runtime/channels/channel-socket-options.ts +8 -15
- package/src/runtime/channels/channel-socket-registry.ts +291 -196
- package/src/runtime/channels/channel-transports.ts +168 -145
- 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/local-spot-route-transport.ts +1 -5
- package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
- package/src/runtime/channels/source-spot-router.ts +2 -9
- package/src/runtime/channels/spot-direct-envelope.ts +1 -1
- package/src/runtime/channels/spot-node-route-transport.ts +7 -9
- package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
- package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
- 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 +127 -125
- 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 +63 -160
- 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 -320
- 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 +16 -57
- 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 +175 -356
- 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 +457 -482
- 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/request-deadline.ts +58 -0
- package/src/runtime/messaging/submission-result.ts +72 -2
- 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 +59 -47
- 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 +98 -66
- package/src/runtime/streams/bound-session-service.ts +22 -2
- package/src/runtime/streams/index.ts +78 -68
- package/src/runtime/streams/managed-stream.ts +32 -23
- package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
- 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 +11 -36
- package/src/runtime/streams/session-context.ts +60 -25
- package/src/runtime/streams/session-requests.ts +2 -1
- package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
- package/src/runtime/streams/stream-frame-factory.ts +2 -3
- package/src/runtime/streams/stream-session-runtime.ts +57 -59
- package/src/runtime/workers/index.ts +13 -12
- package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
- package/dist/runtime/actors/post-commit-actor-location.js +0 -72
- package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
- package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
- package/src/runtime/actors/post-commit-actor-location.ts +0 -121
- package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
|
@@ -1,35 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type RoutingId,
|
|
3
|
+
type ZLinkChannelClient,
|
|
4
|
+
type ZLinkChannelRequestCall,
|
|
5
|
+
type ZLinkMessageMetadata,
|
|
6
|
+
type ZLinkPublishCall,
|
|
7
|
+
type ZLinkRequestCall,
|
|
8
|
+
type ZLinkSendCall,
|
|
9
|
+
type ZLinkSpotOutbound,
|
|
10
|
+
type ZLinkSpotPublisherClient,
|
|
11
|
+
type ZLinkSpotRequestCall,
|
|
12
|
+
type ZLinkSpotSendCall,
|
|
13
|
+
ZLinkSpotKind
|
|
14
|
+
} from '../../contracts';
|
|
15
|
+
|
|
16
|
+
import {
|
|
17
|
+
ZLINK_MAX_MESH_NAME_BYTES,
|
|
18
|
+
ZLINK_MAX_STABLE_TYPE_BYTES
|
|
19
|
+
} from '../../contracts/Common/CoreTypes';
|
|
20
|
+
import type { ZLinkBackendSpot } from '../backend/contracts';
|
|
21
|
+
import { ZLinkConfigurationException } from '../configuration';
|
|
22
|
+
import { requireZLinkYieldTurn } from '../execution';
|
|
1
23
|
import {
|
|
2
24
|
ZLinkFrameworkInternalErrorKind,
|
|
3
25
|
createInternalFrameworkException
|
|
4
26
|
} from '../framework-errors-internal';
|
|
5
|
-
import {
|
|
6
|
-
import type {
|
|
7
|
-
RoutingId,
|
|
8
|
-
ZLinkChannelClient,
|
|
9
|
-
ZLinkChannelRequestCall,
|
|
10
|
-
ZLinkPublishCall,
|
|
11
|
-
ZLinkRequestCall,
|
|
12
|
-
ZLinkSendCall,
|
|
13
|
-
ZLinkMessageMetadata,
|
|
14
|
-
ZLinkSpotOutbound,
|
|
15
|
-
ZLinkSpotRequestCall,
|
|
16
|
-
ZLinkSpotSendCall,
|
|
17
|
-
ZLinkSpotPublisherClient
|
|
18
|
-
} from '../../contracts';
|
|
27
|
+
import { resolveFrameworkPacketName } from '../messaging/packet-name';
|
|
19
28
|
import {
|
|
20
29
|
requireOneWayCompletion,
|
|
21
30
|
throwAlreadySubmitted,
|
|
22
31
|
type ZLinkSubmitResult
|
|
23
32
|
} from '../messaging/submission-result';
|
|
24
33
|
import { normalizeOpaqueRoutingId } from '../routing-id';
|
|
25
|
-
import { ZLinkConfigurationException } from '../configuration';
|
|
26
|
-
import type { ZLinkBackendSpot } from '../backend/contracts';
|
|
27
34
|
import { deliverOnSerial } from '../workers';
|
|
28
|
-
import {
|
|
29
|
-
import { resolveFrameworkPacketName } from '../messaging/packet-name';
|
|
35
|
+
import { resolveSpotHandle, type ResolvedSpotHandle, type SpotHandle } from './spot-handle';
|
|
30
36
|
import type { ZLinkSpotRouteTarget } from './spot-routing-internal';
|
|
31
37
|
import { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
|
|
32
|
-
import { resolveSpotHandle, type SpotHandle, type ResolvedSpotHandle } from './spot-handle';
|
|
33
38
|
|
|
34
39
|
export interface DefaultZLinkSpotOutboundOptions {
|
|
35
40
|
readonly serial: ZLinkSpotSerialTurnExecutor;
|
|
@@ -186,7 +191,7 @@ export interface ZLinkSpotAddressTransport {
|
|
|
186
191
|
sendToSpotAddress(
|
|
187
192
|
spotId: RoutingId,
|
|
188
193
|
message: unknown,
|
|
189
|
-
options: ZLinkSpotAddressCallOptions
|
|
194
|
+
options: Omit<ZLinkSpotAddressCallOptions, 'timeoutMs' | 'signal'>
|
|
190
195
|
): Promise<ZLinkSubmitResult>;
|
|
191
196
|
requestToSpotAddress<TReply = unknown>(
|
|
192
197
|
spotId: RoutingId,
|
|
@@ -221,15 +226,14 @@ export interface ZLinkSpotRoutedTransport {
|
|
|
221
226
|
}
|
|
222
227
|
|
|
223
228
|
export interface ZLinkSpotRoutedSendOptions {
|
|
229
|
+
readonly instanceSpot?: boolean;
|
|
224
230
|
readonly packetName?: string;
|
|
225
|
-
/** Internal end-to-end budget remaining for route admission. */
|
|
226
|
-
readonly timeoutMs?: number;
|
|
227
|
-
readonly signal?: AbortSignal;
|
|
228
231
|
readonly metadata?: ReadonlyMap<string, string>;
|
|
229
232
|
}
|
|
230
233
|
|
|
231
234
|
export interface ZLinkSpotRoutedRequestOptions extends ZLinkSpotRoutedSendOptions {
|
|
232
235
|
readonly timeoutMs?: number;
|
|
236
|
+
readonly signal?: AbortSignal;
|
|
233
237
|
}
|
|
234
238
|
|
|
235
239
|
interface MutableAddressCallOptions {
|
|
@@ -260,22 +264,30 @@ function createAddressedSpotSendCall(
|
|
|
260
264
|
selectOnce(options, 'instanceSpot');
|
|
261
265
|
options.instanceSpot = true;
|
|
262
266
|
if (instanceSpotType !== undefined) {
|
|
263
|
-
options.instanceSpotType = requireAddressValue(
|
|
267
|
+
options.instanceSpotType = requireAddressValue(
|
|
268
|
+
instanceSpotType,
|
|
269
|
+
'Instance Spot type',
|
|
270
|
+
ZLINK_MAX_STABLE_TYPE_BYTES
|
|
271
|
+
);
|
|
264
272
|
}
|
|
265
273
|
return this;
|
|
266
274
|
},
|
|
267
275
|
inMesh(meshName: string) {
|
|
268
276
|
selectOnce(options, 'inMesh');
|
|
269
|
-
options.initialMeshName = requireAddressValue(
|
|
277
|
+
options.initialMeshName = requireAddressValue(
|
|
278
|
+
meshName,
|
|
279
|
+
'Mesh name',
|
|
280
|
+
ZLINK_MAX_MESH_NAME_BYTES
|
|
281
|
+
);
|
|
270
282
|
return this;
|
|
271
283
|
},
|
|
272
|
-
async submit(
|
|
284
|
+
async submit(): Promise<void> {
|
|
273
285
|
markSubmitted(options);
|
|
274
286
|
const pending = startRequestOnSerial(serial, () => ({
|
|
275
287
|
pending: transport.sendToSpotAddress(
|
|
276
288
|
spotId,
|
|
277
289
|
message,
|
|
278
|
-
freezeAddressCallOptions(options,
|
|
290
|
+
freezeAddressCallOptions(options, sourceSpotProvider?.())
|
|
279
291
|
)
|
|
280
292
|
}));
|
|
281
293
|
const result = await (serial.isCurrentTurn ? pending : deliverOnSerial(serial, pending));
|
|
@@ -300,11 +312,11 @@ function createAddressedSpotRequestCall(
|
|
|
300
312
|
markSubmitted(options);
|
|
301
313
|
rejectSameSpotAsyncRequest(serial, spotId, waitPolicy);
|
|
302
314
|
return startRequestOnSerial<TReply>(serial, () => ({
|
|
303
|
-
pending: transport.requestToSpotAddress<TReply>(
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
)
|
|
315
|
+
pending: transport.requestToSpotAddress<TReply>(spotId, request, {
|
|
316
|
+
...freezeAddressCallOptions(options, sourceSpotProvider?.()),
|
|
317
|
+
timeoutMs: options.timeoutMs,
|
|
318
|
+
signal
|
|
319
|
+
})
|
|
308
320
|
}));
|
|
309
321
|
};
|
|
310
322
|
return {
|
|
@@ -316,13 +328,21 @@ function createAddressedSpotRequestCall(
|
|
|
316
328
|
selectOnce(options, 'instanceSpot');
|
|
317
329
|
options.instanceSpot = true;
|
|
318
330
|
if (instanceSpotType !== undefined) {
|
|
319
|
-
options.instanceSpotType = requireAddressValue(
|
|
331
|
+
options.instanceSpotType = requireAddressValue(
|
|
332
|
+
instanceSpotType,
|
|
333
|
+
'Instance Spot type',
|
|
334
|
+
ZLINK_MAX_STABLE_TYPE_BYTES
|
|
335
|
+
);
|
|
320
336
|
}
|
|
321
337
|
return this;
|
|
322
338
|
},
|
|
323
339
|
inMesh(meshName: string) {
|
|
324
340
|
selectOnce(options, 'inMesh');
|
|
325
|
-
options.initialMeshName = requireAddressValue(
|
|
341
|
+
options.initialMeshName = requireAddressValue(
|
|
342
|
+
meshName,
|
|
343
|
+
'Mesh name',
|
|
344
|
+
ZLINK_MAX_MESH_NAME_BYTES
|
|
345
|
+
);
|
|
326
346
|
return this;
|
|
327
347
|
},
|
|
328
348
|
timeout(timeoutMs: number) {
|
|
@@ -400,7 +420,6 @@ function markSubmitted(options: MutableAddressCallOptions): void {
|
|
|
400
420
|
|
|
401
421
|
function freezeAddressCallOptions(
|
|
402
422
|
options: MutableAddressCallOptions,
|
|
403
|
-
signal: AbortSignal | undefined,
|
|
404
423
|
sourceSpot: ZLinkBackendSpot | undefined
|
|
405
424
|
): ZLinkSpotAddressCallOptions {
|
|
406
425
|
return {
|
|
@@ -408,8 +427,6 @@ function freezeAddressCallOptions(
|
|
|
408
427
|
instanceSpot: options.instanceSpot,
|
|
409
428
|
instanceSpotType: options.instanceSpotType,
|
|
410
429
|
initialMeshName: options.initialMeshName,
|
|
411
|
-
timeoutMs: options.timeoutMs,
|
|
412
|
-
signal,
|
|
413
430
|
sourceSpot
|
|
414
431
|
};
|
|
415
432
|
}
|
|
@@ -431,8 +448,8 @@ function wrapSendCall(serial: ZLinkSpotSerialTurnExecutor, inner: ZLinkSendCall)
|
|
|
431
448
|
else inner.metadata(key);
|
|
432
449
|
return this;
|
|
433
450
|
},
|
|
434
|
-
async submit(
|
|
435
|
-
const result = await runInternalTransportStart(serial, () => inner.submit(
|
|
451
|
+
async submit() {
|
|
452
|
+
const result = await runInternalTransportStart(serial, () => inner.submit());
|
|
436
453
|
return result;
|
|
437
454
|
}
|
|
438
455
|
};
|
|
@@ -526,11 +543,10 @@ function wrapRoutedSpotSendCall(
|
|
|
526
543
|
}
|
|
527
544
|
return this;
|
|
528
545
|
},
|
|
529
|
-
async submit(
|
|
546
|
+
async submit(): Promise<void> {
|
|
530
547
|
const pending = startRequestOnSerial(serial, () => ({
|
|
531
548
|
pending: sendToSpotHandle(transport, spot, message, {
|
|
532
549
|
metadata,
|
|
533
|
-
signal,
|
|
534
550
|
spotRouterChannelIdForMesh,
|
|
535
551
|
sourceSpot: sourceSpotProvider?.()
|
|
536
552
|
})
|
|
@@ -623,7 +639,7 @@ export async function sendToSpotHandle(
|
|
|
623
639
|
transport: ZLinkSpotRoutedTransport,
|
|
624
640
|
spot: SpotHandle,
|
|
625
641
|
message: unknown,
|
|
626
|
-
options: ZLinkSpotHandleCallOptions = {}
|
|
642
|
+
options: Omit<ZLinkSpotHandleCallOptions, 'timeoutMs' | 'signal'> = {}
|
|
627
643
|
): Promise<ZLinkSubmitResult> {
|
|
628
644
|
const packetName = resolveFrameworkPacketName(message, undefined, 'SPOT');
|
|
629
645
|
const sendResolved = async (resolved: ResolvedSpotHandle): Promise<ZLinkSubmitResult> => {
|
|
@@ -631,20 +647,16 @@ export async function sendToSpotHandle(
|
|
|
631
647
|
if (options.sourceSpot !== undefined && transport.sendFromSpotToSpot !== undefined) {
|
|
632
648
|
return transport.sendFromSpotToSpot(options.sourceSpot, target, message, {
|
|
633
649
|
packetName,
|
|
634
|
-
timeoutMs: options.timeoutMs,
|
|
635
|
-
signal: options.signal,
|
|
636
650
|
metadata: options.metadata
|
|
637
651
|
});
|
|
638
652
|
}
|
|
639
653
|
return transport.sendToSpot(target, message, {
|
|
640
654
|
packetName,
|
|
641
|
-
timeoutMs: options.timeoutMs,
|
|
642
|
-
signal: options.signal,
|
|
643
655
|
metadata: options.metadata
|
|
644
656
|
});
|
|
645
657
|
};
|
|
646
658
|
|
|
647
|
-
return sendResolved(await requireSpotRef(spot
|
|
659
|
+
return sendResolved(await requireSpotRef(spot));
|
|
648
660
|
}
|
|
649
661
|
|
|
650
662
|
export async function requestToSpotHandle<TReply = unknown>(
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ZLINK_MAX_SPOT_ID_BYTES } from '../../contracts/Common/CoreTypes';
|
|
2
|
+
import { ZlinkStreamContentType } from '@zlink-systems/stream-wire';
|
|
1
3
|
import type { ZLinkBackendActorRef } from '../backend/contracts';
|
|
2
4
|
import { decodeActorMessageFollowContext, type ZLinkRemoteBoundSessionTarget } from '../actors';
|
|
3
5
|
import type { RoutingId, ZLinkActor } from '../../contracts';
|
|
@@ -146,7 +148,7 @@ export function decodeRemoteActorJoinPayload(
|
|
|
146
148
|
requestContentType:
|
|
147
149
|
typeof payload.requestContentType === 'string'
|
|
148
150
|
? payload.requestContentType
|
|
149
|
-
:
|
|
151
|
+
: ZlinkStreamContentType.Json
|
|
150
152
|
};
|
|
151
153
|
}
|
|
152
154
|
|
|
@@ -302,8 +304,10 @@ function decodeBoundSessionServiceWireRelocation(
|
|
|
302
304
|
|
|
303
305
|
function requireSpotId(value: string): string {
|
|
304
306
|
const bytes = Buffer.byteLength(value, 'utf8');
|
|
305
|
-
if (bytes < 1 || bytes >
|
|
306
|
-
throw new Error(
|
|
307
|
+
if (bytes < 1 || bytes > ZLINK_MAX_SPOT_ID_BYTES) {
|
|
308
|
+
throw new Error(
|
|
309
|
+
`Remote bound session SpotId must contain 1..${ZLINK_MAX_SPOT_ID_BYTES} UTF-8 bytes.`
|
|
310
|
+
);
|
|
307
311
|
}
|
|
308
312
|
return value;
|
|
309
313
|
}
|
|
@@ -1,21 +1,31 @@
|
|
|
1
|
-
import
|
|
2
|
-
Type,
|
|
3
|
-
ZLinkMessageSerializer,
|
|
4
|
-
ZLinkSpot,
|
|
5
|
-
ZLinkSpotPacketHandler,
|
|
6
|
-
ZLinkSpotRequestHandler
|
|
1
|
+
import {
|
|
2
|
+
type Type,
|
|
3
|
+
type ZLinkMessageSerializer,
|
|
4
|
+
type ZLinkSpot,
|
|
5
|
+
type ZLinkSpotPacketHandler,
|
|
6
|
+
type ZLinkSpotRequestHandler,
|
|
7
|
+
ZLinkFrameworkException,
|
|
8
|
+
zlinkMessageMetadata
|
|
7
9
|
} from '../../contracts';
|
|
10
|
+
|
|
11
|
+
import type { Message } from '../../contracts/Common/Message';
|
|
8
12
|
import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
|
|
9
|
-
import { ZLinkFrameworkException, zlinkMessageMetadata } from '../../contracts';
|
|
10
13
|
import {
|
|
11
14
|
ZLinkRuntimeDispatchErrorAction as ZLinkDispatchErrorAction,
|
|
12
15
|
ZLinkRuntimeDispatchErrorReason as ZLinkDispatchErrorReason,
|
|
13
16
|
ZLinkDispatchErrorSurface,
|
|
14
17
|
ZLinkDispatchMessageKind
|
|
15
18
|
} from '../../contracts/Dispatch/ZLinkDispatchOptions';
|
|
19
|
+
import {
|
|
20
|
+
ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET,
|
|
21
|
+
ZLINK_REMOTE_BOUND_SESSION_ERROR_PACKET,
|
|
22
|
+
ZLINK_REMOTE_BOUND_SESSION_RESPONSE_PACKET,
|
|
23
|
+
ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET
|
|
24
|
+
} from '../actors';
|
|
25
|
+
import type { ZLinkApplicationWorkClaim } from '../admission';
|
|
26
|
+
import { releaseApplicationJobPermitBeforeHandler } from '../application-jobs/application-job-queue-scope';
|
|
16
27
|
import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
|
|
17
28
|
import type { ZLinkBackendReceived as BackendReceived } from '../backend/runtime-values';
|
|
18
|
-
import type { Message } from '../../contracts/Common/Message';
|
|
19
29
|
import type { ZLinkDispatchErrorReporter } from '../channels';
|
|
20
30
|
import {
|
|
21
31
|
decodeChannelEnvelope,
|
|
@@ -27,25 +37,18 @@ import {
|
|
|
27
37
|
ZLinkChannelMessageKind,
|
|
28
38
|
type ZLinkChannelEnvelopeCodecRegistry
|
|
29
39
|
} from '../channels/channel-envelope';
|
|
40
|
+
import { SPOT_DIRECT_ENVELOPE } from '../channels/spot-direct-envelope';
|
|
41
|
+
import { createInboundFlow, runWithFlow } from '../diagnostics/flow-context';
|
|
42
|
+
import { zlinkMetadataByteLength, zlinkSerialWorkOptions } from '../execution/serial-work-size';
|
|
30
43
|
import {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET
|
|
35
|
-
} from '../actors';
|
|
44
|
+
internalFrameworkErrorKind,
|
|
45
|
+
ZLinkFrameworkInternalErrorKind
|
|
46
|
+
} from '../framework-errors-internal';
|
|
36
47
|
import { resolveLifecycleHandler } from '../handlers/handler-instance-scope';
|
|
37
48
|
import type { ZLinkSpotHandlerRegistration } from './spot-handler-registry';
|
|
38
|
-
import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
|
|
39
|
-
import type { ZLinkApplicationWorkClaim } from '../admission';
|
|
40
|
-
import { zlinkMetadataByteLength, zlinkSerialWorkOptions } from '../execution/serial-work-size';
|
|
41
49
|
import { REMOTE_ACTOR_JOIN_PACKET } from './spot-remote-codec';
|
|
42
50
|
import { appendRouteReplyParts, hasReplyToken, submitRouteReply } from './spot-route-replies';
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
ZLinkFrameworkInternalErrorKind,
|
|
46
|
-
internalFrameworkErrorKind
|
|
47
|
-
} from '../framework-errors-internal';
|
|
48
|
-
import { releaseApplicationJobPermitBeforeHandler } from '../application-jobs/application-job-queue-scope';
|
|
51
|
+
import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
|
|
49
52
|
|
|
50
53
|
interface ZLinkSpotRoutePacketDispatchOptions {
|
|
51
54
|
readonly packetHandlers: ReadonlyMap<string, readonly ZLinkSpotHandlerRegistration[]>;
|
|
@@ -58,8 +61,6 @@ interface ZLinkSpotRoutePacketDispatchOptions {
|
|
|
58
61
|
readonly claimApplicationWork?: () => ZLinkApplicationWorkClaim;
|
|
59
62
|
}
|
|
60
63
|
|
|
61
|
-
const SPOT_DIRECT_ENVELOPE = 'zlink.framework.spot-direct.v1';
|
|
62
|
-
|
|
63
64
|
/** D5: reply metadata attached only to framework-self-generated errors. */
|
|
64
65
|
const FRAMEWORK_ORIGIN_REPLY_METADATA: Readonly<Record<string, string>> = Object.freeze({
|
|
65
66
|
[ZLINK_FRAMEWORK_ORIGIN_METADATA_KEY]: ZLINK_FRAMEWORK_ORIGIN_METADATA_VALUE
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { constants as osConstants } from 'node:os';
|
|
1
2
|
import type {
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
ZLinkBackendReceived as BackendReceived,
|
|
4
|
+
ZLinkBackendMessageLike as MessageLike
|
|
4
5
|
} from '../backend/runtime-values';
|
|
5
6
|
import {
|
|
6
7
|
decodeChannelEnvelope,
|
|
@@ -8,8 +9,9 @@ import {
|
|
|
8
9
|
encodeChannelReplyParts
|
|
9
10
|
} from '../channels/channel-envelope';
|
|
10
11
|
import { ZLinkConfigurationException } from '../configuration';
|
|
11
|
-
import { encodeSpotRouteBridgeReply } from './spot-route-reply-wire';
|
|
12
12
|
import type { ZLinkDecodedRemoteActorJoinRequest } from './spot-remote-codec';
|
|
13
|
+
import { encodeSpotRouteBridgeReply } from './spot-route-reply-wire';
|
|
14
|
+
const nativeErrnoValues = osConstants.errno;
|
|
13
15
|
|
|
14
16
|
export interface ZLinkRouteReplySubmitOperation {
|
|
15
17
|
message(message: MessageLike): ZLinkRouteReplySubmitOperation;
|
|
@@ -120,6 +122,6 @@ function isNativeBadAddress(error: unknown): boolean {
|
|
|
120
122
|
return (
|
|
121
123
|
typeof error === 'object' &&
|
|
122
124
|
error !== null &&
|
|
123
|
-
Number((error as { nativeErrno?: unknown }).nativeErrno) ===
|
|
125
|
+
Number((error as { nativeErrno?: unknown }).nativeErrno) === nativeErrnoValues.EFAULT
|
|
124
126
|
);
|
|
125
127
|
}
|
|
@@ -5,6 +5,8 @@ import type {
|
|
|
5
5
|
ZLinkSpotActorJoinResult
|
|
6
6
|
} from '../../contracts';
|
|
7
7
|
import type { Message } from '../../contracts/Common/Message';
|
|
8
|
+
import type { ZLinkActorHandoffPacket, ZLinkActorHandoffResult } from '../actors/actor-handoff';
|
|
9
|
+
import type { ZLinkRemoteBoundSessionTarget } from '../actors/actor-runtime-state';
|
|
8
10
|
import { ZLinkBufferMessage as RuntimeMessage } from '../backend/runtime-message';
|
|
9
11
|
import type { ZLinkBackendReceived as BackendReceived } from '../backend/runtime-values';
|
|
10
12
|
import {
|
|
@@ -23,16 +25,12 @@ import {
|
|
|
23
25
|
hasRemoteActorJoinIdentity,
|
|
24
26
|
isRemoteActorJoinPayload,
|
|
25
27
|
type ZLinkDecodedRemoteActorJoinRequest,
|
|
26
|
-
type
|
|
27
|
-
type
|
|
28
|
+
type ZLinkRemoteActorJoinWirePayload,
|
|
29
|
+
type ZLinkRoutedActorTransferProvider
|
|
28
30
|
} from './spot-remote-codec';
|
|
29
31
|
import { submitRoutedActorJoinError, submitRoutedActorJoinReply } from './spot-route-replies';
|
|
30
32
|
import type { ZLinkSpotSerialTurnExecutor } from './spot-serial-turn-executor';
|
|
31
|
-
|
|
32
|
-
import {
|
|
33
|
-
ZLinkFrameworkInternalErrorKind,
|
|
34
|
-
createInternalFrameworkException
|
|
35
|
-
} from '../framework-errors-internal';
|
|
33
|
+
const DEFAULT_PENDING_ADMISSION_TIMEOUT_MS = 30_000;
|
|
36
34
|
|
|
37
35
|
interface ZLinkRoutedActorAdmissionTarget {
|
|
38
36
|
onActorJoin?(actorId: string, request: ZLinkMessage): Promise<ZLinkSpotActorJoinResult>;
|
|
@@ -40,13 +38,13 @@ interface ZLinkRoutedActorAdmissionTarget {
|
|
|
40
38
|
|
|
41
39
|
interface ZLinkSpotRoutedActorAdmissionOptions {
|
|
42
40
|
readonly serial: ZLinkSpotSerialTurnExecutor;
|
|
43
|
-
readonly isSpotClosing?: () => boolean;
|
|
44
41
|
readonly getTarget: () => ZLinkRoutedActorAdmissionTarget;
|
|
45
42
|
readonly defaultAccept: boolean;
|
|
46
43
|
readonly routedActorTransferProvider?: ZLinkRoutedActorTransferProvider;
|
|
47
44
|
readonly commitTransferredActor?: (
|
|
48
45
|
actor: ZLinkActor,
|
|
49
|
-
backlog: readonly ZLinkActorHandoffPacket[]
|
|
46
|
+
backlog: readonly ZLinkActorHandoffPacket[],
|
|
47
|
+
sealedSession: ZLinkRemoteBoundSessionTarget | undefined
|
|
50
48
|
) => Promise<readonly ZLinkActorHandoffResult[]>;
|
|
51
49
|
readonly messageSerializers?: ReadonlyMap<string, ZLinkMessageSerializer>;
|
|
52
50
|
readonly pendingAdmissionTimeoutMs?: number;
|
|
@@ -78,21 +76,6 @@ export class ZLinkSpotRoutedActorAdmission {
|
|
|
78
76
|
if (decoded === undefined) {
|
|
79
77
|
return false;
|
|
80
78
|
}
|
|
81
|
-
if (this.options.isSpotClosing?.() === true) {
|
|
82
|
-
try {
|
|
83
|
-
submitRoutedActorJoinError(
|
|
84
|
-
received,
|
|
85
|
-
decoded,
|
|
86
|
-
createInternalFrameworkException(
|
|
87
|
-
ZLinkFrameworkInternalErrorKind.RequestRejected,
|
|
88
|
-
`Actor '${decoded.actorId}' target Spot is closing.`
|
|
89
|
-
)
|
|
90
|
-
);
|
|
91
|
-
} finally {
|
|
92
|
-
this.closeDecoded(decoded);
|
|
93
|
-
}
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
79
|
if (decoded.phase === 'admission') {
|
|
97
80
|
await this.admitTransfer(decoded, received);
|
|
98
81
|
return true;
|
|
@@ -240,7 +223,11 @@ export class ZLinkSpotRoutedActorAdmission {
|
|
|
240
223
|
decoded.remoteBoundSessionTarget
|
|
241
224
|
);
|
|
242
225
|
const handoffResults =
|
|
243
|
-
(await this.options.commitTransferredActor?.(
|
|
226
|
+
(await this.options.commitTransferredActor?.(
|
|
227
|
+
actor,
|
|
228
|
+
decoded.handoffBacklog,
|
|
229
|
+
decoded.remoteBoundSessionTarget
|
|
230
|
+
)) ?? [];
|
|
244
231
|
const commitReply = {
|
|
245
232
|
accepted: true,
|
|
246
233
|
actorNodeRid: String(actorRef.nodeRid),
|
|
@@ -298,7 +285,7 @@ export class ZLinkSpotRoutedActorAdmission {
|
|
|
298
285
|
if (pending.deadline !== undefined) clearTimeout(pending.deadline);
|
|
299
286
|
pending.deadline = setTimeout(() => {
|
|
300
287
|
if (this.pending.get(transferId) === pending) this.pending.delete(transferId);
|
|
301
|
-
}, this.options.pendingAdmissionTimeoutMs ??
|
|
288
|
+
}, this.options.pendingAdmissionTimeoutMs ?? DEFAULT_PENDING_ADMISSION_TIMEOUT_MS);
|
|
302
289
|
pending.deadline.unref();
|
|
303
290
|
}
|
|
304
291
|
|
|
@@ -34,14 +34,14 @@ interface ZLinkRoutedFrameAdmissionTarget {
|
|
|
34
34
|
interface ZLinkSpotRoutedFrameDispatchOptions {
|
|
35
35
|
readonly nativeSpotId: string;
|
|
36
36
|
readonly serial: ZLinkSpotSerialTurnExecutor;
|
|
37
|
-
readonly isSpotClosing?: () => boolean;
|
|
38
37
|
readonly resolveActor: (actorId: string) => ZLinkActor | undefined;
|
|
39
38
|
readonly getTarget: () => ZLinkRoutedFrameAdmissionTarget & ZLinkSpot;
|
|
40
39
|
readonly defaultAccept: boolean;
|
|
41
40
|
readonly routedActorTransferProvider?: ZLinkRoutedActorTransferProvider;
|
|
42
41
|
readonly commitTransferredActor?: (
|
|
43
42
|
actor: ZLinkActor,
|
|
44
|
-
backlog: readonly ZLinkActorHandoffPacket[]
|
|
43
|
+
backlog: readonly ZLinkActorHandoffPacket[],
|
|
44
|
+
sealedSession: ZLinkRemoteBoundSessionTarget | undefined
|
|
45
45
|
) => Promise<readonly ZLinkActorHandoffResult[]>;
|
|
46
46
|
readonly actorPacketHandler?: (delivery: ZLinkActorPacketDelivery) => Promise<unknown>;
|
|
47
47
|
readonly routedBoundSessionReceiver?: (
|
|
@@ -119,7 +119,6 @@ export class ZLinkSpotRoutedFrameDispatch {
|
|
|
119
119
|
});
|
|
120
120
|
this.routedActorAdmission = new ZLinkSpotRoutedActorAdmission({
|
|
121
121
|
serial: options.serial,
|
|
122
|
-
isSpotClosing: options.isSpotClosing,
|
|
123
122
|
getTarget: options.getTarget,
|
|
124
123
|
defaultAccept: options.defaultAccept,
|
|
125
124
|
routedActorTransferProvider: options.routedActorTransferProvider,
|