@zlink-systems/framework 0.25.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/contracts/Channels/IZLinkFanoutClient.d.ts +0 -6
- package/dist/contracts/Common/CoreTypes.d.ts +6 -0
- package/dist/contracts/Common/CoreTypes.js +7 -0
- package/dist/contracts/Common/index.d.ts +1 -1
- package/dist/contracts/Common/index.js +0 -1
- package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
- package/dist/contracts/Configuration/InternalDefaults.js +9 -1
- package/dist/contracts/Configuration/Registration.d.ts +13 -2
- package/dist/contracts/Configuration/Registration.js +58 -36
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
- package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
- package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
- package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -0
- package/dist/contracts/Configuration/RegistrationValidators.js +15 -12
- package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
- package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
- package/dist/contracts/Handlers/JsonContract.js +10 -4
- package/dist/contracts/Locations/Authority.d.ts +1 -1
- package/dist/contracts/Locations/Authority.js +3 -2
- package/dist/contracts/Locations/Options.js +1 -1
- package/dist/contracts/Locations/Stores.d.ts +12 -0
- package/dist/contracts/Locations/Stores.js +9 -0
- package/dist/contracts/RouteMesh/RuntimeTopology.d.ts +8 -0
- package/dist/contracts/Spots/Contracts.d.ts +1 -1
- package/dist/internal.d.ts +5 -0
- package/dist/internal.js +16 -1
- package/dist/nest-integration.d.ts +4 -2
- package/dist/nest-integration.js +14 -4
- package/dist/runtime/abort.d.ts +1 -0
- package/dist/runtime/abort.js +8 -5
- package/dist/runtime/activation-admission.d.ts +28 -0
- package/dist/runtime/activation-admission.js +57 -0
- package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
- package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
- package/dist/runtime/actors/actor-client.d.ts +2 -2
- package/dist/runtime/actors/actor-client.js +42 -143
- package/dist/runtime/actors/actor-context.d.ts +3 -5
- package/dist/runtime/actors/actor-context.js +19 -17
- package/dist/runtime/actors/actor-handoff.d.ts +13 -7
- package/dist/runtime/actors/actor-handoff.js +36 -25
- package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
- package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
- package/dist/runtime/actors/actor-local-native-join.js +85 -123
- package/dist/runtime/actors/actor-native-lookup.js +2 -8
- package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
- package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
- package/dist/runtime/actors/actor-remote-joiner.d.ts +3 -3
- package/dist/runtime/actors/actor-remote-joiner.js +11 -17
- package/dist/runtime/actors/actor-remote-wire.js +5 -3
- package/dist/runtime/actors/actor-request-deadline.d.ts +3 -0
- package/dist/runtime/actors/actor-request-deadline.js +31 -0
- package/dist/runtime/actors/actor-retry-delay.js +2 -1
- package/dist/runtime/actors/actor-runtime-contracts.d.ts +4 -2
- package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
- package/dist/runtime/actors/actor-runtime-state.js +70 -187
- package/dist/runtime/actors/actor-source-transfer.d.ts +5 -5
- package/dist/runtime/actors/bound-session-wire.js +2 -7
- package/dist/runtime/actors/deferred-join-completion.d.ts +19 -0
- package/dist/runtime/actors/deferred-join-completion.js +21 -0
- package/dist/runtime/actors/index.d.ts +10 -8
- package/dist/runtime/actors/index.js +101 -73
- package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
- package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
- package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
- package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
- package/dist/runtime/admission.d.ts +7 -1
- package/dist/runtime/admission.js +11 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
- package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
- package/dist/runtime/backend/contracts/index.d.ts +8 -33
- package/dist/runtime/backend/mesh-actor-session-node-adapter.js +3 -26
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
- package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
- package/dist/runtime/backend/node/node-backend-adapter-factory.d.ts +1 -2
- package/dist/runtime/backend/node/node-backend-adapter-factory.js +4 -18
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +7 -4
- package/dist/runtime/backend/node/node-backend-adapter-support.js +28 -34
- package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
- package/dist/runtime/backend/node/node-event-loop-poller.js +11 -6
- package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
- package/dist/runtime/backend/node/node-raw-binding-port.d.ts +1 -1
- package/dist/runtime/backend/node/node-raw-binding-port.js +51 -19
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +21 -19
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +171 -111
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
- package/dist/runtime/backend/raw-binding-port.d.ts +13 -1
- package/dist/runtime/backend/runtime-values.d.ts +4 -1
- package/dist/runtime/backend/runtime-values.js +2 -0
- package/dist/runtime/channels/channel-clients.d.ts +20 -9
- package/dist/runtime/channels/channel-clients.js +68 -60
- package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
- package/dist/runtime/channels/channel-envelope.js +47 -29
- package/dist/runtime/channels/channel-outbound-operations.d.ts +3 -0
- package/dist/runtime/channels/channel-outbound-operations.js +9 -18
- package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
- package/dist/runtime/channels/channel-receive-loops.js +27 -6
- package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
- package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
- package/dist/runtime/channels/channel-runtime-manager.d.ts +2 -5
- package/dist/runtime/channels/channel-runtime-manager.js +4 -12
- package/dist/runtime/channels/channel-socket-options.js +3 -2
- package/dist/runtime/channels/channel-socket-registry.d.ts +30 -32
- package/dist/runtime/channels/channel-socket-registry.js +296 -235
- package/dist/runtime/channels/channel-transports.d.ts +11 -20
- package/dist/runtime/channels/channel-transports.js +68 -47
- package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
- package/dist/runtime/channels/client-server-location-runtime.js +10 -11
- package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
- package/dist/runtime/channels/client-server-service-wire.js +32 -11
- package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
- package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
- package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
- package/dist/runtime/channels/fanout-location-runtime.js +133 -81
- package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
- package/dist/runtime/channels/spot-direct-envelope.js +4 -3
- package/dist/runtime/channels/spot-node-route-transport.js +3 -2
- package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
- package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
- package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
- package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
- package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
- package/dist/runtime/diagnostics/flow-context.js +16 -2
- package/dist/runtime/diagnostics/index.d.ts +4 -2
- package/dist/runtime/diagnostics/index.js +14 -4
- package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
- package/dist/runtime/diagnostics/message-flow.js +10 -19
- package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
- package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
- package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
- package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
- package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
- package/dist/runtime/disposal.d.ts +5 -0
- package/dist/runtime/disposal.js +22 -0
- package/dist/runtime/execution/index.d.ts +22 -9
- package/dist/runtime/execution/index.js +107 -37
- package/dist/runtime/execution/serial-execution-queue.d.ts +12 -7
- package/dist/runtime/execution/serial-execution-queue.js +99 -26
- package/dist/runtime/execution/state-lane.d.ts +8 -1
- package/dist/runtime/execution/state-lane.js +118 -3
- package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
- package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
- package/dist/runtime/foundation/event-loop-resources.js +6 -119
- package/dist/runtime/foundation/listener-records.d.ts +11 -0
- package/dist/runtime/foundation/listener-records.js +20 -0
- package/dist/runtime/foundation/operation-identity.d.ts +2 -0
- package/dist/runtime/foundation/operation-identity.js +9 -5
- package/dist/runtime/foundation/operation-registry.d.ts +5 -7
- package/dist/runtime/foundation/operation-registry.js +34 -44
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +18 -26
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +122 -469
- package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
- package/dist/runtime/foundation/runtime-state-projections.js +8 -0
- package/dist/runtime/foundation/service-authority-payload-codec.d.ts +1 -0
- package/dist/runtime/foundation/service-authority-payload-codec.js +30 -12
- package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
- package/dist/runtime/foundation/service-discovery-registry.js +22 -3
- package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
- package/dist/runtime/foundation/service-liveness-registry.js +2 -1
- package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
- package/dist/runtime/foundation/service-maintenance-runtime.js +23 -8
- package/dist/runtime/foundation/service-metadata-codec.js +3 -3
- package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
- package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
- package/dist/runtime/foundation/service-relocation-coordinator.d.ts +9 -0
- package/dist/runtime/foundation/service-relocation-coordinator.js +14 -1
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +8 -0
- package/dist/runtime/foundation/service-relocation-object-owner.js +19 -6
- package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
- package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
- package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -19
- package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
- package/dist/runtime/foundation/service-stateful-registry.js +10 -2
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +28 -24
- package/dist/runtime/foundation/service-stateful-runtime.js +297 -244
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +12 -7
- package/dist/runtime/foundation/service-stateful-wire-codec.js +240 -143
- package/dist/runtime/foundation/service-topology-registry.d.ts +1 -3
- package/dist/runtime/foundation/service-topology-registry.js +22 -61
- package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
- package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
- package/dist/runtime/foundation/service-wire-codec.js +10 -8
- package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
- package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
- package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
- package/dist/runtime/framework-errors-internal.d.ts +2 -1
- package/dist/runtime/framework-errors-internal.js +343 -122
- package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
- package/dist/runtime/handlers/handler-instance-scope.js +61 -74
- package/dist/runtime/host/actor-packet-relay.d.ts +9 -6
- package/dist/runtime/host/actor-packet-relay.js +48 -91
- package/dist/runtime/host/actor-placement-coordinator.js +7 -5
- package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
- package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
- package/dist/runtime/host/actor-transfer-runtime.d.ts +28 -28
- package/dist/runtime/host/actor-transfer-runtime.js +210 -256
- package/dist/runtime/host/application-job-queue.js +16 -33
- package/dist/runtime/host/bound-session-relay.js +1 -1
- package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
- package/dist/runtime/host/index.d.ts +19 -14
- package/dist/runtime/host/index.js +234 -175
- package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
- package/dist/runtime/host/instance-activation-authority.js +17 -45
- package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
- package/dist/runtime/host/location-runtime-owner.js +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
- package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
- package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
- package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
- package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
- package/dist/runtime/host/remote-bound-session-relay.js +11 -23
- package/dist/runtime/host/route-mesh-runtime.d.ts +14 -10
- package/dist/runtime/host/route-mesh-runtime.js +178 -257
- package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
- package/dist/runtime/host/runtime-shutdown.js +18 -21
- package/dist/runtime/host/service-relocation-control.js +6 -1
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +71 -38
- package/dist/runtime/host/service-relocation-host-runtime.js +816 -651
- package/dist/runtime/host/spot-address-transport.d.ts +2 -3
- package/dist/runtime/host/spot-address-transport.js +34 -136
- package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
- package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
- package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -7
- package/dist/runtime/host/spot-runtime-options-factory.js +53 -21
- package/dist/runtime/host/stateful-authority-route-runtime.js +6 -2
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +14 -6
- package/dist/runtime/host/user-spot-creation-coordinator.js +96 -95
- package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
- package/dist/runtime/locations/authority-key-codec.js +4 -3
- package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
- package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
- package/dist/runtime/locations/creation-operation-id.js +6 -4
- package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
- package/dist/runtime/locations/in-memory-authority-store.js +31 -15
- package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
- package/dist/runtime/locations/in-memory-location-store.js +17 -14
- package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
- package/dist/runtime/locations/in-memory-provider-location-store.js +79 -27
- package/dist/runtime/locations/key-codec.js +3 -2
- package/dist/runtime/locations/lease-tracker.d.ts +3 -5
- package/dist/runtime/locations/lease-tracker.js +7 -11
- package/dist/runtime/locations/lifecycle.d.ts +5 -10
- package/dist/runtime/locations/lifecycle.js +4 -33
- package/dist/runtime/locations/location-store-failure.d.ts +2 -0
- package/dist/runtime/locations/location-store-failure.js +7 -0
- package/dist/runtime/locations/location-store-pages.d.ts +3 -0
- package/dist/runtime/locations/location-store-pages.js +13 -0
- package/dist/runtime/locations/location-store-repository.d.ts +5 -7
- package/dist/runtime/locations/location-store-repository.js +303 -332
- package/dist/runtime/locations/relocation-blob.js +18 -5
- package/dist/runtime/locations/resolvers.d.ts +5 -5
- package/dist/runtime/locations/resolvers.js +44 -30
- package/dist/runtime/locations/runtime.d.ts +5 -4
- package/dist/runtime/locations/runtime.js +123 -92
- package/dist/runtime/locations/spot-location-claims.d.ts +8 -2
- package/dist/runtime/locations/spot-location-claims.js +40 -23
- package/dist/runtime/messaging/payload-codec.js +26 -20
- package/dist/runtime/messaging/submission-result.d.ts +3 -0
- package/dist/runtime/messaging/submission-result.js +48 -0
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +2 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +17 -8
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +1 -0
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +3 -2
- package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +3 -3
- package/dist/runtime/spots/formal-remote-actor-admission-registry.js +4 -4
- package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +6 -3
- package/dist/runtime/spots/index.d.ts +29 -29
- package/dist/runtime/spots/index.js +441 -313
- package/dist/runtime/spots/spot-activation-registry.d.ts +4 -4
- package/dist/runtime/spots/spot-activation-registry.js +27 -60
- package/dist/runtime/spots/spot-activation-state.d.ts +2 -11
- package/dist/runtime/spots/spot-activation-state.js +4 -17
- package/dist/runtime/spots/spot-activation.d.ts +10 -9
- package/dist/runtime/spots/spot-activation.js +103 -81
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
- package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
- package/dist/runtime/spots/spot-actor-join-dispatch.js +5 -55
- package/dist/runtime/spots/spot-actor-lifecycle-drain.js +2 -2
- package/dist/runtime/spots/spot-actor-membership.d.ts +7 -5
- package/dist/runtime/spots/spot-actor-membership.js +44 -53
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
- package/dist/runtime/spots/spot-context.d.ts +2 -2
- package/dist/runtime/spots/spot-entry-activation.d.ts +3 -4
- package/dist/runtime/spots/spot-entry-activation.js +9 -21
- package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
- package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
- package/dist/runtime/spots/spot-manager-public.js +6 -5
- package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +22 -21
- package/dist/runtime/spots/spot-node-runtime-manager.js +73 -82
- package/dist/runtime/spots/spot-outbound.d.ts +4 -3
- package/dist/runtime/spots/spot-outbound.js +10 -37
- package/dist/runtime/spots/spot-remote-codec.js +5 -3
- package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
- package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
- package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
- package/dist/runtime/spots/spot-route-replies.js +3 -1
- package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -2
- package/dist/runtime/spots/spot-routed-actor-admission.js +3 -2
- package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +2 -7
- package/dist/runtime/spots/spot-routed-frame-dispatch.js +1 -70
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
- package/dist/runtime/spots/spot-runtime-ports.d.ts +4 -20
- package/dist/runtime/spots/spot-serial-executor.d.ts +5 -0
- package/dist/runtime/spots/spot-serial-executor.js +9 -2
- package/dist/runtime/spots/spot-serial-turn-executor.d.ts +29 -6
- package/dist/runtime/spots/spot-serial-turn-executor.js +89 -13
- package/dist/runtime/spots/spot-timer.d.ts +3 -2
- package/dist/runtime/streams/actor-session-binding-registry.d.ts +17 -32
- package/dist/runtime/streams/actor-session-binding-registry.js +145 -367
- package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +2 -6
- package/dist/runtime/streams/bound-actor-relay-sender.d.ts +6 -2
- package/dist/runtime/streams/bound-actor-relay-sender.js +57 -33
- package/dist/runtime/streams/bound-session-service.d.ts +7 -0
- package/dist/runtime/streams/bound-session-service.js +12 -19
- package/dist/runtime/streams/index.d.ts +15 -14
- package/dist/runtime/streams/index.js +38 -39
- package/dist/runtime/streams/managed-stream.d.ts +3 -0
- package/dist/runtime/streams/managed-stream.js +17 -8
- package/dist/runtime/streams/native-fallback-bound-session.js +1 -3
- package/dist/runtime/streams/protocol.d.ts +6 -33
- package/dist/runtime/streams/protocol.js +38 -110
- package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
- package/dist/runtime/streams/session-actor-coordinator.js +12 -4
- package/dist/runtime/streams/session-calls.d.ts +1 -1
- package/dist/runtime/streams/session-calls.js +5 -4
- package/dist/runtime/streams/session-context.d.ts +6 -6
- package/dist/runtime/streams/session-context.js +22 -4
- package/dist/runtime/streams/session-requests.js +2 -1
- package/dist/runtime/streams/session-serial-executor.js +2 -2
- package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
- package/dist/runtime/streams/stream-frame-factory.js +2 -2
- package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
- package/dist/runtime/streams/stream-session-runtime.js +25 -33
- package/dist/runtime/workers/index.d.ts +2 -2
- package/dist/runtime/workers/index.js +5 -4
- package/package.json +3 -3
- package/src/contracts/Channels/IZLinkFanoutClient.ts +0 -7
- package/src/contracts/Common/CoreTypes.ts +7 -0
- package/src/contracts/Common/index.ts +1 -1
- package/src/contracts/Configuration/InternalDefaults.ts +12 -0
- package/src/contracts/Configuration/Registration.ts +92 -48
- package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
- package/src/contracts/Configuration/RegistrationBuilders.ts +77 -68
- package/src/contracts/Configuration/RegistrationTypes.ts +1 -0
- package/src/contracts/Configuration/RegistrationValidators.ts +19 -13
- package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
- package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
- package/src/contracts/Handlers/JsonContract.ts +14 -4
- package/src/contracts/Locations/Authority.ts +7 -3
- package/src/contracts/Locations/Options.ts +1 -1
- package/src/contracts/Locations/Stores.ts +14 -0
- package/src/contracts/RouteMesh/RuntimeTopology.ts +10 -0
- package/src/contracts/Spots/Contracts.ts +1 -1
- package/src/internal.ts +15 -0
- package/src/nest-integration.ts +28 -10
- package/src/runtime/abort.ts +6 -5
- package/src/runtime/activation-admission.ts +72 -0
- package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
- package/src/runtime/actors/actor-client.ts +77 -204
- package/src/runtime/actors/actor-context.ts +45 -39
- package/src/runtime/actors/actor-handoff.ts +55 -45
- package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
- package/src/runtime/actors/actor-local-native-join.ts +174 -215
- package/src/runtime/actors/actor-native-lookup.ts +2 -9
- package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
- package/src/runtime/actors/actor-remote-joiner.ts +15 -36
- package/src/runtime/actors/actor-remote-wire.ts +5 -3
- package/src/runtime/actors/actor-request-deadline.ts +49 -0
- package/src/runtime/actors/actor-retry-delay.ts +2 -1
- package/src/runtime/actors/actor-runtime-contracts.ts +4 -10
- package/src/runtime/actors/actor-runtime-state.ts +85 -247
- package/src/runtime/actors/actor-source-transfer.ts +5 -18
- package/src/runtime/actors/bound-session-wire.ts +2 -8
- package/src/runtime/actors/deferred-join-completion.ts +44 -0
- package/src/runtime/actors/index.ts +122 -88
- package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
- package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
- package/src/runtime/admission.ts +13 -2
- package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
- package/src/runtime/backend/contracts/index.ts +15 -42
- package/src/runtime/backend/mesh-actor-session-node-adapter.ts +4 -28
- package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
- package/src/runtime/backend/node/node-backend-adapter-factory.ts +5 -25
- package/src/runtime/backend/node/node-backend-adapter-support.ts +32 -35
- package/src/runtime/backend/node/node-event-loop-poller.ts +16 -8
- package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
- package/src/runtime/backend/node/node-raw-binding-port.ts +58 -23
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +252 -162
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +5 -4
- package/src/runtime/backend/raw-binding-port.ts +14 -1
- package/src/runtime/backend/runtime-values.ts +4 -1
- package/src/runtime/channels/channel-clients.ts +132 -96
- package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
- package/src/runtime/channels/channel-envelope.ts +58 -29
- package/src/runtime/channels/channel-outbound-operations.ts +10 -31
- package/src/runtime/channels/channel-receive-loops.ts +39 -7
- package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
- package/src/runtime/channels/channel-runtime-manager.ts +8 -15
- package/src/runtime/channels/channel-socket-options.ts +8 -2
- package/src/runtime/channels/channel-socket-registry.ts +369 -262
- package/src/runtime/channels/channel-transports.ts +161 -115
- package/src/runtime/channels/client-server-location-runtime.ts +17 -17
- package/src/runtime/channels/client-server-service-wire.ts +40 -12
- package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
- package/src/runtime/channels/fanout-location-runtime.ts +175 -106
- package/src/runtime/channels/spot-direct-envelope.ts +1 -1
- package/src/runtime/channels/spot-node-route-transport.ts +5 -2
- package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
- package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
- package/src/runtime/diagnostics/flow-context.ts +16 -2
- package/src/runtime/diagnostics/index.ts +27 -17
- package/src/runtime/diagnostics/message-flow.ts +15 -25
- package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
- package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
- package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
- package/src/runtime/disposal.ts +19 -0
- package/src/runtime/execution/index.ts +116 -38
- package/src/runtime/execution/serial-execution-queue.ts +179 -34
- package/src/runtime/execution/state-lane.ts +142 -4
- package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
- package/src/runtime/foundation/event-loop-resources.ts +5 -122
- package/src/runtime/foundation/listener-records.ts +21 -0
- package/src/runtime/foundation/operation-identity.ts +11 -5
- package/src/runtime/foundation/operation-registry.ts +33 -50
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +170 -571
- package/src/runtime/foundation/runtime-state-projections.ts +9 -1
- package/src/runtime/foundation/service-authority-payload-codec.ts +41 -13
- package/src/runtime/foundation/service-discovery-registry.ts +32 -3
- package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
- package/src/runtime/foundation/service-liveness-registry.ts +2 -1
- package/src/runtime/foundation/service-maintenance-runtime.ts +30 -19
- package/src/runtime/foundation/service-metadata-codec.ts +2 -2
- package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
- package/src/runtime/foundation/service-relocation-coordinator.ts +13 -0
- package/src/runtime/foundation/service-relocation-object-owner.ts +23 -7
- package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
- package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
- package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -25
- package/src/runtime/foundation/service-stateful-registry.ts +14 -2
- package/src/runtime/foundation/service-stateful-runtime.ts +435 -327
- package/src/runtime/foundation/service-stateful-wire-codec.ts +329 -199
- package/src/runtime/foundation/service-topology-registry.ts +30 -79
- package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
- package/src/runtime/foundation/service-wire-codec.ts +15 -8
- package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
- package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
- package/src/runtime/framework-errors-internal.ts +380 -134
- package/src/runtime/handlers/handler-instance-scope.ts +68 -95
- package/src/runtime/host/actor-packet-relay.ts +57 -147
- package/src/runtime/host/actor-placement-coordinator.ts +8 -5
- package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
- package/src/runtime/host/actor-transfer-runtime.ts +266 -418
- package/src/runtime/host/application-job-queue.ts +28 -34
- package/src/runtime/host/bound-session-relay.ts +1 -2
- package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
- package/src/runtime/host/index.ts +408 -312
- package/src/runtime/host/instance-activation-authority.ts +89 -109
- package/src/runtime/host/location-runtime-owner.ts +4 -2
- package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
- package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
- package/src/runtime/host/remote-bound-session-relay.ts +12 -44
- package/src/runtime/host/route-mesh-runtime.ts +236 -275
- package/src/runtime/host/runtime-shutdown.ts +17 -21
- package/src/runtime/host/service-relocation-control.ts +14 -1
- package/src/runtime/host/service-relocation-host-runtime.ts +1161 -904
- package/src/runtime/host/spot-address-transport.ts +73 -195
- package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
- package/src/runtime/host/spot-runtime-options-factory.ts +92 -30
- package/src/runtime/host/stateful-authority-route-runtime.ts +8 -4
- package/src/runtime/host/user-spot-creation-coordinator.ts +182 -163
- package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
- package/src/runtime/locations/authority-key-codec.ts +7 -3
- package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
- package/src/runtime/locations/creation-operation-id.ts +6 -3
- package/src/runtime/locations/domain-store-contract.ts +12 -3
- package/src/runtime/locations/in-memory-authority-store.ts +44 -15
- package/src/runtime/locations/in-memory-location-store.ts +50 -39
- package/src/runtime/locations/in-memory-provider-location-store.ts +110 -31
- package/src/runtime/locations/key-codec.ts +3 -2
- package/src/runtime/locations/lease-tracker.ts +8 -14
- package/src/runtime/locations/lifecycle.ts +16 -45
- package/src/runtime/locations/location-store-failure.ts +4 -0
- package/src/runtime/locations/location-store-pages.ts +18 -0
- package/src/runtime/locations/location-store-repository.ts +450 -478
- package/src/runtime/locations/relocation-blob.ts +17 -6
- package/src/runtime/locations/resolvers.ts +90 -58
- package/src/runtime/locations/runtime.ts +220 -110
- package/src/runtime/locations/spot-location-claims.ts +54 -26
- package/src/runtime/messaging/payload-codec.ts +35 -24
- package/src/runtime/messaging/submission-result.ts +57 -1
- package/src/runtime/protocol/service_wire_codec.generated.ts +27 -10
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
- package/src/runtime/spots/formal-remote-actor-admission-registry.ts +6 -6
- package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +6 -3
- package/src/runtime/spots/index.ts +687 -437
- package/src/runtime/spots/spot-activation-registry.ts +42 -71
- package/src/runtime/spots/spot-activation-state.ts +4 -16
- package/src/runtime/spots/spot-activation.ts +167 -115
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
- package/src/runtime/spots/spot-actor-join-dispatch.ts +25 -79
- package/src/runtime/spots/spot-actor-lifecycle-drain.ts +20 -18
- package/src/runtime/spots/spot-actor-membership.ts +107 -75
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
- package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
- package/src/runtime/spots/spot-context.ts +3 -3
- package/src/runtime/spots/spot-entry-activation.ts +13 -33
- package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
- package/src/runtime/spots/spot-manager-public.ts +29 -21
- package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
- package/src/runtime/spots/spot-node-runtime-manager.ts +145 -140
- package/src/runtime/spots/spot-outbound.ts +47 -68
- package/src/runtime/spots/spot-remote-codec.ts +7 -3
- package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
- package/src/runtime/spots/spot-route-replies.ts +6 -4
- package/src/runtime/spots/spot-routed-actor-admission.ts +13 -6
- package/src/runtime/spots/spot-routed-frame-dispatch.ts +6 -77
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
- package/src/runtime/spots/spot-runtime-ports.ts +10 -43
- package/src/runtime/spots/spot-serial-executor.ts +10 -2
- package/src/runtime/spots/spot-serial-turn-executor.ts +120 -13
- package/src/runtime/spots/spot-timer.ts +3 -2
- package/src/runtime/streams/actor-session-binding-registry.ts +182 -560
- package/src/runtime/streams/actor-session-binding-runtime-owner.ts +1 -19
- package/src/runtime/streams/bound-actor-relay-sender.ts +89 -43
- package/src/runtime/streams/bound-session-service.ts +23 -37
- package/src/runtime/streams/index.ts +102 -88
- package/src/runtime/streams/managed-stream.ts +29 -10
- package/src/runtime/streams/native-fallback-bound-session.ts +1 -3
- package/src/runtime/streams/protocol.ts +34 -88
- package/src/runtime/streams/session-actor-coordinator.ts +17 -5
- package/src/runtime/streams/session-calls.ts +6 -5
- package/src/runtime/streams/session-context.ts +54 -10
- package/src/runtime/streams/session-requests.ts +2 -1
- package/src/runtime/streams/session-serial-executor.ts +2 -2
- package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
- package/src/runtime/streams/stream-frame-factory.ts +2 -3
- package/src/runtime/streams/stream-session-runtime.ts +57 -59
- package/src/runtime/workers/index.ts +13 -12
- package/dist/runtime/actors/deferred-join-accepted-journal.d.ts +0 -47
- package/dist/runtime/actors/deferred-join-accepted-journal.js +0 -992
- package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
- package/dist/runtime/actors/post-commit-actor-location.js +0 -72
- package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
- package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
- package/src/runtime/actors/deferred-join-accepted-journal.ts +0 -1346
- package/src/runtime/actors/post-commit-actor-location.ts +0 -121
- package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
|
@@ -1,15 +1,25 @@
|
|
|
1
|
+
import { UINT64_MAX } from '@zlink-systems/stream-wire';
|
|
1
2
|
import { createHash } from 'node:crypto';
|
|
3
|
+
import { AUTHORITY_ENVELOPE_MAX_BYTES } from '../../contracts/Configuration/InternalDefaults';
|
|
4
|
+
import { decodeAuthorityKey } from '../locations/authority-key-codec';
|
|
2
5
|
import type {
|
|
3
|
-
|
|
4
|
-
|
|
6
|
+
ZLinkAuthorityKey,
|
|
7
|
+
ZLinkPlacementObjectKind
|
|
5
8
|
} from '../locations/internal-location-contracts';
|
|
6
|
-
import {
|
|
9
|
+
import { enumWireRelocationPhase } from '../protocol/service_wire_codec.generated';
|
|
7
10
|
import {
|
|
8
11
|
decodeRelocationEnvelopeV1 as decodeGeneratedRelocationEnvelopeV1,
|
|
9
12
|
encodeRelocationEnvelopeV1 as encodeGeneratedRelocationEnvelopeV1,
|
|
10
13
|
type RelocationEnvelopeV1 as GeneratedRelocationEnvelopeV1,
|
|
11
14
|
type RelocationObjectIdentity as GeneratedRelocationObjectIdentity
|
|
12
15
|
} from '../protocol/service_wire_pilot_codec.generated';
|
|
16
|
+
import { SHA256_DIGEST_BYTES } from './actor-join-recovery-codec';
|
|
17
|
+
const MAX_RELOCATION_GENERATION = 0x7fff_ffff_ffff_ffffn;
|
|
18
|
+
|
|
19
|
+
const RELOCATION_PREPARING_PHASE = enumWireRelocationPhase('preparing');
|
|
20
|
+
const RELOCATION_ACTIVATING_PHASE = enumWireRelocationPhase('activating');
|
|
21
|
+
const RELOCATION_COMPLETED_PHASE = enumWireRelocationPhase('completed');
|
|
22
|
+
const RELOCATION_LAST_PHASE = enumWireRelocationPhase('aborted');
|
|
13
23
|
|
|
14
24
|
export interface ServiceRelocationParticipant {
|
|
15
25
|
/** Wire-local participant ordinal; identity is projected from Location Store. */
|
|
@@ -280,7 +290,7 @@ export function projectServiceRelocationAuthorityTargetReady(
|
|
|
280
290
|
coordinatorNodeRid: target.nodeRid,
|
|
281
291
|
coordinatorNodeGeneration: target.nodeGeneration,
|
|
282
292
|
coordinatorExpectedStoreVersion: target.coordinatorExpectedStoreVersion,
|
|
283
|
-
phase:
|
|
293
|
+
phase: RELOCATION_ACTIVATING_PHASE,
|
|
284
294
|
sourceCleanupState: 0
|
|
285
295
|
});
|
|
286
296
|
return replaceCanonicalRelocationSlot(layout, slot);
|
|
@@ -323,7 +333,7 @@ function decodeCanonicalAuthorityPublication(
|
|
|
323
333
|
function decodeCanonicalAuthorityLayout(payload: Uint8Array): CanonicalAuthorityLayout | undefined {
|
|
324
334
|
try {
|
|
325
335
|
const bytes = Buffer.from(payload);
|
|
326
|
-
if (bytes.byteLength < 20 || bytes.byteLength >
|
|
336
|
+
if (bytes.byteLength < 20 || bytes.byteLength > AUTHORITY_ENVELOPE_MAX_BYTES) return undefined;
|
|
327
337
|
const reader = new CanonicalReader(bytes);
|
|
328
338
|
reader.expect(Buffer.from('ZLAU'));
|
|
329
339
|
if (reader.u8() !== 1) return undefined;
|
|
@@ -395,21 +405,21 @@ export function decodeCanonicalRelocationSlot(
|
|
|
395
405
|
if (
|
|
396
406
|
!reader.done ||
|
|
397
407
|
aggregateGeneration > 0x7fff_ffff_ffff_fffen ||
|
|
398
|
-
(aggregateGeneration === 0n && phase !==
|
|
408
|
+
(aggregateGeneration === 0n && phase !== RELOCATION_PREPARING_PHASE) ||
|
|
399
409
|
(rootAggregateGeneration !== undefined && aggregateGeneration !== rootAggregateGeneration) ||
|
|
400
|
-
targetAttemptGeneration >
|
|
410
|
+
targetAttemptGeneration > MAX_RELOCATION_GENERATION ||
|
|
401
411
|
sourceNodeGeneration === 0n ||
|
|
402
|
-
sourceNodeGeneration >
|
|
412
|
+
sourceNodeGeneration > MAX_RELOCATION_GENERATION ||
|
|
403
413
|
sourceOwnerLeaseGeneration === 0n ||
|
|
404
|
-
sourceOwnerLeaseGeneration >
|
|
405
|
-
targetNodeGeneration >
|
|
406
|
-
targetOwnerLeaseGeneration >
|
|
414
|
+
sourceOwnerLeaseGeneration > MAX_RELOCATION_GENERATION ||
|
|
415
|
+
targetNodeGeneration > MAX_RELOCATION_GENERATION ||
|
|
416
|
+
targetOwnerLeaseGeneration > MAX_RELOCATION_GENERATION ||
|
|
407
417
|
coordinatorLeaseGeneration === 0n ||
|
|
408
|
-
coordinatorLeaseGeneration >
|
|
418
|
+
coordinatorLeaseGeneration > MAX_RELOCATION_GENERATION ||
|
|
409
419
|
coordinatorNodeGeneration === 0n ||
|
|
410
|
-
coordinatorNodeGeneration >
|
|
411
|
-
phase <
|
|
412
|
-
phase >
|
|
420
|
+
coordinatorNodeGeneration > MAX_RELOCATION_GENERATION ||
|
|
421
|
+
phase < RELOCATION_PREPARING_PHASE ||
|
|
422
|
+
phase > RELOCATION_LAST_PHASE ||
|
|
413
423
|
applicationVersion < 0n ||
|
|
414
424
|
sourceCleanupState > 2
|
|
415
425
|
)
|
|
@@ -452,10 +462,10 @@ export function encodeCanonicalRelocationSlot(value: CanonicalRelocationSlot): B
|
|
|
452
462
|
if (aggregateGeneration > 0x7fff_ffff_ffff_fffen) {
|
|
453
463
|
throw new TypeError('Aggregate generation exceeds the issued range.');
|
|
454
464
|
}
|
|
455
|
-
if (aggregateGeneration === 0n && value.phase !==
|
|
465
|
+
if (aggregateGeneration === 0n && value.phase !== RELOCATION_PREPARING_PHASE) {
|
|
456
466
|
throw new TypeError('Zero aggregate generation is only valid while preparing.');
|
|
457
467
|
}
|
|
458
|
-
if (targetAttemptGeneration >
|
|
468
|
+
if (targetAttemptGeneration > MAX_RELOCATION_GENERATION) {
|
|
459
469
|
throw new TypeError('Target attempt generation exceeds the ordinal range.');
|
|
460
470
|
}
|
|
461
471
|
const sourceNodeGeneration = canonicalNonZeroOrdinal(
|
|
@@ -482,7 +492,11 @@ export function encodeCanonicalRelocationSlot(value: CanonicalRelocationSlot): B
|
|
|
482
492
|
value.coordinatorNodeGeneration,
|
|
483
493
|
'coordinator node generation'
|
|
484
494
|
);
|
|
485
|
-
if (
|
|
495
|
+
if (
|
|
496
|
+
!Number.isInteger(value.phase) ||
|
|
497
|
+
value.phase < RELOCATION_PREPARING_PHASE ||
|
|
498
|
+
value.phase > RELOCATION_LAST_PHASE
|
|
499
|
+
) {
|
|
486
500
|
throw new TypeError('Canonical relocation phase is invalid.');
|
|
487
501
|
}
|
|
488
502
|
if (
|
|
@@ -553,7 +567,7 @@ function encodeCanonicalRelocationPublicationSlot(
|
|
|
553
567
|
coordinatorNodeRid: publication.coordinatorNodeRid ?? nodeRid,
|
|
554
568
|
coordinatorNodeGeneration: publication.coordinatorNodeGeneration ?? layout.nodeGeneration,
|
|
555
569
|
coordinatorExpectedStoreVersion: publication.coordinatorExpectedStoreVersion ?? '',
|
|
556
|
-
phase: publication.canonicalPhase ??
|
|
570
|
+
phase: publication.canonicalPhase ?? RELOCATION_COMPLETED_PHASE,
|
|
557
571
|
applicationVersion,
|
|
558
572
|
sourceCleanupState: publication.canonicalSourceCleanupState ?? 0
|
|
559
573
|
});
|
|
@@ -579,8 +593,10 @@ function replaceCanonicalRelocationSlot(
|
|
|
579
593
|
body
|
|
580
594
|
]);
|
|
581
595
|
const result = Buffer.concat([envelope, canonicalU32(crc32c(envelope))]);
|
|
582
|
-
if (result.byteLength >
|
|
583
|
-
throw new TypeError(
|
|
596
|
+
if (result.byteLength > AUTHORITY_ENVELOPE_MAX_BYTES) {
|
|
597
|
+
throw new TypeError(
|
|
598
|
+
`Canonical authority payload exceeds ${AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`
|
|
599
|
+
);
|
|
584
600
|
}
|
|
585
601
|
return result;
|
|
586
602
|
}
|
|
@@ -1022,8 +1038,8 @@ function encodeAuthorityEnvelope(
|
|
|
1022
1038
|
'target owner lease generation'
|
|
1023
1039
|
);
|
|
1024
1040
|
if (
|
|
1025
|
-
aggregateGeneration >
|
|
1026
|
-
targetOwnerLeaseGeneration >
|
|
1041
|
+
aggregateGeneration > MAX_RELOCATION_GENERATION ||
|
|
1042
|
+
targetOwnerLeaseGeneration > MAX_RELOCATION_GENERATION
|
|
1027
1043
|
) {
|
|
1028
1044
|
throw new TypeError('Relocation publication generations must fit signed 64-bit storage.');
|
|
1029
1045
|
}
|
|
@@ -1040,8 +1056,10 @@ function encodeAuthorityEnvelope(
|
|
|
1040
1056
|
i64le(targetOwnerLeaseGeneration),
|
|
1041
1057
|
bytes32le(base)
|
|
1042
1058
|
]);
|
|
1043
|
-
if (payload.byteLength >
|
|
1044
|
-
throw new TypeError(
|
|
1059
|
+
if (payload.byteLength > AUTHORITY_ENVELOPE_MAX_BYTES) {
|
|
1060
|
+
throw new TypeError(
|
|
1061
|
+
`Location authority relocation payload exceeds ${AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`
|
|
1062
|
+
);
|
|
1045
1063
|
}
|
|
1046
1064
|
return payload;
|
|
1047
1065
|
}
|
|
@@ -1067,8 +1085,8 @@ function decodeAuthorityEnvelope(
|
|
|
1067
1085
|
if (
|
|
1068
1086
|
!reader.done ||
|
|
1069
1087
|
aggregateGeneration === 0n ||
|
|
1070
|
-
aggregateGeneration >
|
|
1071
|
-
inventoryDigestBytes.byteLength !==
|
|
1088
|
+
aggregateGeneration > MAX_RELOCATION_GENERATION ||
|
|
1089
|
+
inventoryDigestBytes.byteLength !== SHA256_DIGEST_BYTES ||
|
|
1072
1090
|
targetOwnerLeaseGeneration <= 0n
|
|
1073
1091
|
) {
|
|
1074
1092
|
return undefined;
|
|
@@ -1181,8 +1199,10 @@ function text16le(value: string): Buffer {
|
|
|
1181
1199
|
|
|
1182
1200
|
function bytes32le(value: Uint8Array): Buffer {
|
|
1183
1201
|
const bytes = Buffer.from(value);
|
|
1184
|
-
if (bytes.byteLength >
|
|
1185
|
-
throw new TypeError(
|
|
1202
|
+
if (bytes.byteLength > AUTHORITY_ENVELOPE_MAX_BYTES) {
|
|
1203
|
+
throw new TypeError(
|
|
1204
|
+
`Relocation byte field exceeds ${AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`
|
|
1205
|
+
);
|
|
1186
1206
|
}
|
|
1187
1207
|
const length = Buffer.alloc(4);
|
|
1188
1208
|
length.writeInt32LE(bytes.byteLength);
|
|
@@ -1350,7 +1370,7 @@ function canonicalU32(value: number): Buffer {
|
|
|
1350
1370
|
}
|
|
1351
1371
|
|
|
1352
1372
|
function canonicalU64(value: bigint): Buffer {
|
|
1353
|
-
if (value < 0n || value >
|
|
1373
|
+
if (value < 0n || value > UINT64_MAX) {
|
|
1354
1374
|
throw new TypeError('Canonical authority u64 is invalid.');
|
|
1355
1375
|
}
|
|
1356
1376
|
const result = Buffer.alloc(8);
|
|
@@ -1360,7 +1380,7 @@ function canonicalU64(value: bigint): Buffer {
|
|
|
1360
1380
|
|
|
1361
1381
|
function canonicalOrdinal(value: bigint, name: string): bigint {
|
|
1362
1382
|
const ordinal = nonNegativeBigInt(value, name);
|
|
1363
|
-
if (ordinal >
|
|
1383
|
+
if (ordinal > MAX_RELOCATION_GENERATION) {
|
|
1364
1384
|
throw new TypeError(`${name} exceeds the ordinal range.`);
|
|
1365
1385
|
}
|
|
1366
1386
|
return ordinal;
|
|
@@ -1373,7 +1393,7 @@ function canonicalNonZeroOrdinal(value: bigint, name: string): bigint {
|
|
|
1373
1393
|
}
|
|
1374
1394
|
|
|
1375
1395
|
function canonicalI64(value: bigint): Buffer {
|
|
1376
|
-
if (value < 0n || value >
|
|
1396
|
+
if (value < 0n || value > MAX_RELOCATION_GENERATION) {
|
|
1377
1397
|
throw new TypeError('Canonical authority i64 is invalid.');
|
|
1378
1398
|
}
|
|
1379
1399
|
const result = Buffer.alloc(8);
|
|
@@ -1387,8 +1407,10 @@ class DotnetBinaryReader {
|
|
|
1387
1407
|
|
|
1388
1408
|
constructor(payload: Uint8Array) {
|
|
1389
1409
|
this.bytes = Buffer.from(payload);
|
|
1390
|
-
if (this.bytes.byteLength >
|
|
1391
|
-
throw new TypeError(
|
|
1410
|
+
if (this.bytes.byteLength > AUTHORITY_ENVELOPE_MAX_BYTES) {
|
|
1411
|
+
throw new TypeError(
|
|
1412
|
+
`Location authority relocation payload exceeds ${AUTHORITY_ENVELOPE_MAX_BYTES / (1024 * 1024)} MiB.`
|
|
1413
|
+
);
|
|
1392
1414
|
}
|
|
1393
1415
|
}
|
|
1394
1416
|
|
|
@@ -1426,7 +1448,7 @@ class DotnetBinaryReader {
|
|
|
1426
1448
|
|
|
1427
1449
|
bytes32(): Buffer {
|
|
1428
1450
|
const length = this.take(4).readInt32LE(0);
|
|
1429
|
-
if (length < 0 || length >
|
|
1451
|
+
if (length < 0 || length > AUTHORITY_ENVELOPE_MAX_BYTES) {
|
|
1430
1452
|
throw new TypeError('Location authority relocation byte field is invalid.');
|
|
1431
1453
|
}
|
|
1432
1454
|
return Buffer.from(this.take(length));
|
|
@@ -1,16 +1,39 @@
|
|
|
1
|
+
import type { RoutingId } from '../../contracts';
|
|
1
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
3
|
+
import type { ApplicationJobPermitPort } from '../application-jobs/contracts';
|
|
2
4
|
import type {
|
|
5
|
+
ZLinkBackendMessageLike as MessageLike,
|
|
3
6
|
RequestResult,
|
|
4
|
-
SubmitResult
|
|
5
|
-
ZLinkBackendMessageLike as MessageLike
|
|
7
|
+
SubmitResult
|
|
6
8
|
} from '../backend/runtime-values';
|
|
7
|
-
import type { RoutingId } from '../../contracts';
|
|
8
|
-
import type { ApplicationJobPermitPort } from '../application-jobs/contracts';
|
|
9
9
|
import type { ServiceActorRef } from './service-stateful-registry';
|
|
10
10
|
import type {
|
|
11
11
|
ServiceDirectSpotRouteFence,
|
|
12
12
|
ServiceRetiredBoundSessionRouteFence
|
|
13
13
|
} from './service-stateful-wire-codec';
|
|
14
|
+
export enum StreamSessionRuntimeState {
|
|
15
|
+
Created = 1,
|
|
16
|
+
Started = 2,
|
|
17
|
+
Closed = 5
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export enum MeshNodeRuntimeState {
|
|
21
|
+
Preparing = 1,
|
|
22
|
+
Serving = 2,
|
|
23
|
+
Retiring = 3,
|
|
24
|
+
Draining = 4,
|
|
25
|
+
Stopped = 5,
|
|
26
|
+
Error = 6
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export enum MeshPeerRuntimeState {
|
|
30
|
+
Connecting = 1,
|
|
31
|
+
Preparing = 2,
|
|
32
|
+
Serving = 3,
|
|
33
|
+
Draining = 4,
|
|
34
|
+
Closed = 5,
|
|
35
|
+
NotRequired = 6
|
|
36
|
+
}
|
|
14
37
|
|
|
15
38
|
export interface MeshOperationId {
|
|
16
39
|
readonly high: bigint;
|
|
@@ -167,6 +190,18 @@ export interface ActorTransferControlPayload {
|
|
|
167
190
|
readonly failureErrno: number;
|
|
168
191
|
}
|
|
169
192
|
|
|
193
|
+
/** The Session owner's registry view of one Session binding (Session–Actor binding §5-2). */
|
|
194
|
+
export interface ServiceStreamSessionBinding {
|
|
195
|
+
readonly sessionRid: RoutingId;
|
|
196
|
+
readonly actor: ServiceActorRef;
|
|
197
|
+
readonly sessionOwnerNodeRid: RoutingId;
|
|
198
|
+
readonly sessionOwnerNodeGeneration: bigint;
|
|
199
|
+
readonly sessionOwnerId: string;
|
|
200
|
+
readonly sessionOwnerLeaseGeneration: bigint;
|
|
201
|
+
readonly bindingGeneration: bigint;
|
|
202
|
+
readonly membershipEpoch: bigint;
|
|
203
|
+
}
|
|
204
|
+
|
|
170
205
|
export interface ActorBindingControlPayload {
|
|
171
206
|
readonly kind: 'actorBinding';
|
|
172
207
|
readonly transition: 'active' | 'tombstone';
|
|
@@ -235,8 +270,14 @@ export interface ReceiveRecord {
|
|
|
235
270
|
readonly isPending?: () => boolean;
|
|
236
271
|
/** Absolute deadline used by the local lifecycle dispatch fence. */
|
|
237
272
|
readonly deadlineUnixMs?: bigint;
|
|
273
|
+
readonly activationRecord?: Extract<
|
|
274
|
+
import('./service-stateful-wire-codec').ServiceStatefulWireRecord,
|
|
275
|
+
{ readonly kind: 'instanceSpot' }
|
|
276
|
+
>;
|
|
238
277
|
readonly messageFollowOrigin?: ZLinkMessageFollowOrigin;
|
|
239
278
|
readonly onTerminalCompletion?: () => void | Promise<void>;
|
|
279
|
+
/** Marks the start of the first handler turn whose terminal record a Close waits for. */
|
|
280
|
+
readonly onHandlerTurnStarted?: () => void;
|
|
240
281
|
readonly applicationJobPermit?: ApplicationJobPermitPort;
|
|
241
282
|
readonly releaseRetainedIngress?: () => void;
|
|
242
283
|
reply(parts: MessageLike | readonly MessageLike[], flags?: number): SubmitResult;
|
|
@@ -344,12 +385,7 @@ export interface StreamSessionService {
|
|
|
344
385
|
expectedBindingGeneration: bigint,
|
|
345
386
|
timeoutMs?: number
|
|
346
387
|
): MeshOperationId;
|
|
347
|
-
bindings(sessionRid: RoutingId): ReadonlyArray<
|
|
348
|
-
readonly sessionRid: RoutingId;
|
|
349
|
-
readonly actor: ServiceActorRef;
|
|
350
|
-
readonly bindingGeneration: bigint;
|
|
351
|
-
readonly membershipEpoch: bigint;
|
|
352
|
-
}>;
|
|
388
|
+
bindings(sessionRid: RoutingId): ReadonlyArray<ServiceStreamSessionBinding>;
|
|
353
389
|
sendToActor(
|
|
354
390
|
sessionRid: RoutingId,
|
|
355
391
|
actor: ServiceActorRef,
|
|
@@ -1,30 +1,5 @@
|
|
|
1
|
-
export interface ServiceSessionBindingRetainedDelivery {
|
|
2
|
-
deliver(): Promise<boolean>;
|
|
3
|
-
fail(error: unknown): void;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export interface ServiceSessionBindingAdmissionClaim {
|
|
7
|
-
readonly actorId: string;
|
|
8
|
-
readonly objectGeneration: bigint;
|
|
9
|
-
readonly actorNodeRid: string;
|
|
10
|
-
readonly actorNodeGeneration: bigint;
|
|
11
|
-
readonly authorityOwnerGeneration: bigint;
|
|
12
|
-
readonly ownerLeaseGeneration: bigint;
|
|
13
|
-
readonly producerNodeRid: string;
|
|
14
|
-
readonly producerNodeGeneration: bigint;
|
|
15
|
-
readonly sessionIdentity: string;
|
|
16
|
-
readonly bindingGeneration: bigint;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type ServiceSessionBindingAdmissionResult = 'passThrough' | 'retained' | 'rejected';
|
|
20
|
-
|
|
21
1
|
export interface ServiceSessionBindingIngressPort {
|
|
22
2
|
actorSlot(actorId: string, sessionRid: string): Promise<number | undefined>;
|
|
23
|
-
retainOutbound(
|
|
24
|
-
claim: ServiceSessionBindingAdmissionClaim,
|
|
25
|
-
delivery: ServiceSessionBindingRetainedDelivery
|
|
26
|
-
): Promise<ServiceSessionBindingAdmissionResult>;
|
|
27
|
-
clearOutbound(actorId: string, error: unknown): Promise<void>;
|
|
28
3
|
}
|
|
29
4
|
|
|
30
5
|
const ports = new WeakMap<object, ServiceSessionBindingIngressPort>();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ZLINK_MAX_IDENTITY_TEXT_BYTES } from '../../contracts/Common/CoreTypes';
|
|
1
2
|
import { OperationRegistry, type PendingOperation } from './operation-registry';
|
|
2
3
|
|
|
3
4
|
export type ServiceSpotKind = 'entry' | 'user' | 'instance';
|
|
@@ -325,6 +326,7 @@ export class ServiceStatefulRegistry {
|
|
|
325
326
|
);
|
|
326
327
|
this.actorTypes.set(actor.actorId, stableType);
|
|
327
328
|
this.actors.set(actor.actorId, restored);
|
|
329
|
+
this.updateBindingMembership(restored);
|
|
328
330
|
return restored;
|
|
329
331
|
}
|
|
330
332
|
|
|
@@ -649,6 +651,14 @@ export class ServiceTerminalOperationRegistry<T> {
|
|
|
649
651
|
return this.operations.isPending(id);
|
|
650
652
|
}
|
|
651
653
|
|
|
654
|
+
get size(): number {
|
|
655
|
+
return this.operations.size;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
expire(nowMs: number, turnDeadlineMs: number): number {
|
|
659
|
+
return this.operations.expire(nowMs, turnDeadlineMs);
|
|
660
|
+
}
|
|
661
|
+
|
|
652
662
|
close(): void {
|
|
653
663
|
this.operations.close('Stateful runtime closed.');
|
|
654
664
|
}
|
|
@@ -660,8 +670,10 @@ function actorKey(actor: ServiceActorRef): string {
|
|
|
660
670
|
|
|
661
671
|
function requireText(value: string, name: string): void {
|
|
662
672
|
const bytes = Buffer.byteLength(value);
|
|
663
|
-
if (bytes < 1 || bytes >
|
|
664
|
-
throw new RangeError(
|
|
673
|
+
if (bytes < 1 || bytes > ZLINK_MAX_IDENTITY_TEXT_BYTES || value.includes('\0')) {
|
|
674
|
+
throw new RangeError(
|
|
675
|
+
`${name} must be 1..${ZLINK_MAX_IDENTITY_TEXT_BYTES} UTF-8 bytes without NUL.`
|
|
676
|
+
);
|
|
665
677
|
}
|
|
666
678
|
}
|
|
667
679
|
|