@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
|
@@ -3,24 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.zlink = void 0;
|
|
4
4
|
exports.isBindingNotFound = isBindingNotFound;
|
|
5
5
|
exports.isRouteRecvRetryable = isRouteRecvRetryable;
|
|
6
|
-
exports.isPollerInterruptedError = isPollerInterruptedError;
|
|
7
6
|
exports.submitBindingPublish = submitBindingPublish;
|
|
8
7
|
exports.submitBindingReply = submitBindingReply;
|
|
9
8
|
exports.submitBindingAsyncSend = submitBindingAsyncSend;
|
|
10
9
|
exports.submitBindingSyncSend = submitBindingSyncSend;
|
|
11
10
|
exports.submitBindingRequest = submitBindingRequest;
|
|
12
|
-
exports.
|
|
11
|
+
exports.closeBindingHandle = closeBindingHandle;
|
|
13
12
|
exports.isContextTerminatedError = isContextTerminatedError;
|
|
14
13
|
exports.disableSocketLinger = disableSocketLinger;
|
|
15
14
|
exports.toNativeRoutingId = toNativeRoutingId;
|
|
16
15
|
exports.translateBindingResultError = translateBindingResultError;
|
|
17
16
|
exports.toNativeActorRef = toNativeActorRef;
|
|
17
|
+
const node_os_1 = require("node:os");
|
|
18
|
+
const submission_result_1 = require("../../messaging/submission-result");
|
|
18
19
|
const node_backend_adapter_1 = require("../node-backend-adapter");
|
|
19
20
|
const runtime_values_1 = require("../runtime-values");
|
|
20
|
-
const
|
|
21
|
+
const nativeErrnoValues = node_os_1.constants.errno;
|
|
21
22
|
exports.zlink = (0, node_backend_adapter_1.loadBinding)();
|
|
22
23
|
function isBindingNotFound(error) {
|
|
23
|
-
return error instanceof exports.zlink.
|
|
24
|
+
return error instanceof exports.zlink.ConnectError && error.result === exports.zlink.ConnectResult.NotFound;
|
|
24
25
|
}
|
|
25
26
|
function isNonBlockingRecvEmpty(error) {
|
|
26
27
|
return error instanceof exports.zlink.RecvError && error.result === exports.zlink.RecvResult.NoData;
|
|
@@ -32,11 +33,9 @@ function isRouteRecvRetryable(error) {
|
|
|
32
33
|
error.result === exports.zlink.RecvResult.InvalidHandle) &&
|
|
33
34
|
isNativeBadAddress(error)));
|
|
34
35
|
}
|
|
35
|
-
function isPollerInterruptedError(error) {
|
|
36
|
-
return error instanceof exports.zlink.RecvError && error.nativeErrno === 4;
|
|
37
|
-
}
|
|
38
36
|
function isNativeBadAddress(error) {
|
|
39
|
-
return error.nativeErrno ===
|
|
37
|
+
return (error.nativeErrno === nativeErrnoValues.EFAULT ||
|
|
38
|
+
/Bad address/i.test(String(error.message ?? '')));
|
|
40
39
|
}
|
|
41
40
|
function submitBindingPublish(operation, payload) {
|
|
42
41
|
try {
|
|
@@ -126,36 +125,28 @@ async function submitBindingRequest(operation, payload, timeoutMs) {
|
|
|
126
125
|
throw translateBindingResultError(error);
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (!isBusyCloseError(error)) {
|
|
141
|
-
throw error;
|
|
142
|
-
}
|
|
143
|
-
lastError = error;
|
|
144
|
-
await new Promise((resolve) => setImmediate(resolve));
|
|
145
|
-
}
|
|
128
|
+
/**
|
|
129
|
+
* Closes a binding handle once. An already closed or terminated handle counts as
|
|
130
|
+
* closed. A busy close propagates to the caller.
|
|
131
|
+
*/
|
|
132
|
+
function closeBindingHandle(target) {
|
|
133
|
+
try {
|
|
134
|
+
target.close();
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
if (!isSuccessfulOrAlreadyShutdownCloseError(error))
|
|
138
|
+
throw error;
|
|
146
139
|
}
|
|
147
|
-
throw lastError;
|
|
148
|
-
}
|
|
149
|
-
function isBusyCloseError(error) {
|
|
150
|
-
return (error instanceof Error &&
|
|
151
|
-
'code' in error &&
|
|
152
|
-
[401, 404].includes(error.code));
|
|
153
140
|
}
|
|
154
141
|
function isSuccessfulOrAlreadyShutdownCloseError(error) {
|
|
155
142
|
return (isContextTerminatedError(error) ||
|
|
156
143
|
(error instanceof Error &&
|
|
157
144
|
'code' in error &&
|
|
158
|
-
[
|
|
145
|
+
[
|
|
146
|
+
exports.zlink.CloseResult.Ok,
|
|
147
|
+
exports.zlink.CloseResult.Shutdown,
|
|
148
|
+
exports.zlink.CloseResult.InvalidHandle
|
|
149
|
+
].includes(error.code)));
|
|
159
150
|
}
|
|
160
151
|
function isContextTerminatedError(error) {
|
|
161
152
|
return error instanceof Error && /context was terminated/i.test(error.message);
|
|
@@ -198,9 +189,12 @@ function toNativeMessageLike(message) {
|
|
|
198
189
|
}
|
|
199
190
|
return message;
|
|
200
191
|
}
|
|
201
|
-
function translateBindingResultError(error) {
|
|
192
|
+
function translateBindingResultError(error, phase = 'completion') {
|
|
202
193
|
if (error instanceof exports.zlink.SubmitError) {
|
|
203
|
-
return new runtime_values_1.ZLinkBackendResultError('submit', error.result, error.nativeErrno, {
|
|
194
|
+
return new runtime_values_1.ZLinkBackendResultError('submit', error.result, error.nativeErrno, {
|
|
195
|
+
cause: error,
|
|
196
|
+
phase
|
|
197
|
+
});
|
|
204
198
|
}
|
|
205
199
|
if (error instanceof exports.zlink.RequestError) {
|
|
206
200
|
return new runtime_values_1.ZLinkBackendResultError('request', error.result, error.nativeErrno, {
|
|
@@ -9,8 +9,8 @@ export declare class ZLinkNodeEventLoopPoller {
|
|
|
9
9
|
private readonly events;
|
|
10
10
|
private readableHandler;
|
|
11
11
|
private disposed;
|
|
12
|
-
constructor(socket: Socket, pollCompletion: boolean, readableHandler: () => void);
|
|
13
|
-
setReadableHandler(handler: () => void): void;
|
|
12
|
+
constructor(socket: Socket, pollCompletion: boolean, readableHandler: (receiveReady: boolean, routeReady: boolean) => void, pollRoute?: boolean);
|
|
13
|
+
setReadableHandler(handler: (receiveReady: boolean, routeReady: boolean) => void): void;
|
|
14
14
|
dispose(): void;
|
|
15
15
|
private readonly onReady;
|
|
16
16
|
}
|
|
@@ -12,12 +12,16 @@ class ZLinkNodeEventLoopPoller {
|
|
|
12
12
|
events = node_backend_adapter_support_1.zlink.createPollEvents(1);
|
|
13
13
|
readableHandler;
|
|
14
14
|
disposed = false;
|
|
15
|
-
constructor(socket, pollCompletion, readableHandler) {
|
|
15
|
+
constructor(socket, pollCompletion, readableHandler, pollRoute = false) {
|
|
16
16
|
this.readableHandler = readableHandler;
|
|
17
17
|
try {
|
|
18
18
|
const pollEvents = [node_backend_adapter_support_1.zlink.PollEventFlag.PollIn];
|
|
19
19
|
if (pollCompletion)
|
|
20
20
|
pollEvents.push(node_backend_adapter_support_1.zlink.PollEventFlag.PollCompletion);
|
|
21
|
+
// A ROUTER selected-route change (Core ROUTER §10.1) wakes the same
|
|
22
|
+
// handler, whose owner is the socket's one route observer.
|
|
23
|
+
if (pollRoute)
|
|
24
|
+
pollEvents.push(node_backend_adapter_support_1.zlink.PollEventFlag.PollRoute);
|
|
21
25
|
this.poller.add(socket, pollEvents, 0);
|
|
22
26
|
socket.setReadableHandler(this.onReady);
|
|
23
27
|
}
|
|
@@ -33,17 +37,18 @@ class ZLinkNodeEventLoopPoller {
|
|
|
33
37
|
dispose() {
|
|
34
38
|
if (this.disposed)
|
|
35
39
|
return;
|
|
36
|
-
this.disposed = true;
|
|
37
|
-
this.events.close();
|
|
38
40
|
this.poller.close();
|
|
41
|
+
this.events.close();
|
|
42
|
+
this.disposed = true;
|
|
39
43
|
}
|
|
40
44
|
onReady = () => {
|
|
41
45
|
if (this.disposed)
|
|
42
46
|
return;
|
|
43
47
|
const ready = this.poller.wait(this.events, 0);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
48
|
+
const receiveReady = ready === 0 || this.events.hasEvent(0, node_backend_adapter_support_1.zlink.PollEventFlag.PollIn);
|
|
49
|
+
const routeReady = ready > 0 && this.events.hasEvent(0, node_backend_adapter_support_1.zlink.PollEventFlag.PollRoute);
|
|
50
|
+
if (receiveReady || routeReady)
|
|
51
|
+
this.readableHandler(receiveReady, routeReady);
|
|
47
52
|
};
|
|
48
53
|
}
|
|
49
54
|
exports.ZLinkNodeEventLoopPoller = ZLinkNodeEventLoopPoller;
|
|
@@ -30,6 +30,7 @@ function wrapMonitorSocket(nativeInstance) {
|
|
|
30
30
|
function toBackendMonitorEvent(event) {
|
|
31
31
|
return {
|
|
32
32
|
nativeEvent: event.event,
|
|
33
|
+
readyEdge: (event.flags & node_backend_adapter_support_1.zlink.MonitorEventFlag.ConnectionReadyEdge) !== 0,
|
|
33
34
|
routingId: event.routingId ?? undefined,
|
|
34
35
|
localAddr: event.localAddr,
|
|
35
36
|
remoteAddr: event.remoteAddr,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Context } from '@zlink-systems/zlink';
|
|
2
2
|
import type { ZLinkRawBindingPort, ZLinkRawHostPort } from '../raw-binding-port';
|
|
3
|
-
export type { ZLinkRawBindingPort, ZLinkRawDealerPort, ZLinkRawHostPort, ZLinkRawMonitorPort, ZLinkRawMonitorRecord, ZLinkRawReceivedRecord, ZLinkRawRouterPort, ZLinkRawSocketPort } from '../raw-binding-port';
|
|
3
|
+
export type { ZLinkRawBindingPort, ZLinkRawDealerPort, ZLinkRawHostPort, ZLinkRawMonitorPort, ZLinkRawMonitorRecord, ZLinkRawReceivedRecord, ZLinkRawRouterPort, ZLinkRawRouterRoute, ZLinkRawSocketPort } from '../raw-binding-port';
|
|
4
4
|
export declare class ZLinkNodeRawBindingPort implements ZLinkRawBindingPort {
|
|
5
5
|
private readonly sharedContext?;
|
|
6
6
|
private readonly routerReceiveTimeoutMs?;
|
|
@@ -48,15 +48,16 @@ class NodeRawHostPort {
|
|
|
48
48
|
return;
|
|
49
49
|
this.state = 'stopping';
|
|
50
50
|
const failures = [];
|
|
51
|
-
for (const resource of this.resources.
|
|
51
|
+
for (const resource of [...this.resources].reverse()) {
|
|
52
52
|
try {
|
|
53
53
|
resource.close();
|
|
54
|
+
this.resources.splice(this.resources.indexOf(resource), 1);
|
|
54
55
|
}
|
|
55
56
|
catch (error) {
|
|
56
57
|
failures.push(error);
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
|
-
if (this.ownsContext) {
|
|
60
|
+
if (this.ownsContext && failures.length === 0) {
|
|
60
61
|
try {
|
|
61
62
|
this.context.close();
|
|
62
63
|
}
|
|
@@ -64,10 +65,10 @@ class NodeRawHostPort {
|
|
|
64
65
|
failures.push(error);
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
|
-
this.state = 'closed';
|
|
68
68
|
if (failures.length > 0) {
|
|
69
69
|
throw new AggregateError(failures, 'Raw binding host cleanup failed.');
|
|
70
70
|
}
|
|
71
|
+
this.state = 'closed';
|
|
71
72
|
}
|
|
72
73
|
own(resource) {
|
|
73
74
|
this.resources.push(resource);
|
|
@@ -85,9 +86,9 @@ class NodeRawSocketPort {
|
|
|
85
86
|
monitors = new Set();
|
|
86
87
|
eventLoopPoller;
|
|
87
88
|
closed = false;
|
|
88
|
-
constructor(socket) {
|
|
89
|
+
constructor(socket, pollRoute = false) {
|
|
89
90
|
this.socket = socket;
|
|
90
|
-
this.eventLoopPoller = new node_event_loop_poller_1.ZLinkNodeEventLoopPoller(socket, true, () => { });
|
|
91
|
+
this.eventLoopPoller = new node_event_loop_poller_1.ZLinkNodeEventLoopPoller(socket, true, () => { }, pollRoute);
|
|
91
92
|
}
|
|
92
93
|
setReadableHandler(handler) {
|
|
93
94
|
this.requireOpen();
|
|
@@ -158,18 +159,17 @@ class NodeRawSocketPort {
|
|
|
158
159
|
failures.push(error);
|
|
159
160
|
}
|
|
160
161
|
}
|
|
162
|
+
if (failures.length > 0) {
|
|
163
|
+
throw new AggregateError(failures, 'Raw socket cleanup failed.');
|
|
164
|
+
}
|
|
161
165
|
this.endpoints.clear();
|
|
162
166
|
try {
|
|
163
167
|
this.socket.close();
|
|
164
168
|
}
|
|
165
169
|
catch (error) {
|
|
166
|
-
|
|
170
|
+
throw new AggregateError([error], 'Raw socket cleanup failed.');
|
|
167
171
|
}
|
|
168
172
|
this.closed = true;
|
|
169
|
-
if (failures.length > 0) {
|
|
170
|
-
console.error('Raw socket cleanup causes:', failures);
|
|
171
|
-
throw new AggregateError(failures, 'Raw socket cleanup failed.');
|
|
172
|
-
}
|
|
173
173
|
}
|
|
174
174
|
requireOpen() {
|
|
175
175
|
if (this.closed)
|
|
@@ -183,7 +183,7 @@ class NodeRawRouterPort extends NodeRawSocketPort {
|
|
|
183
183
|
this.socket.disconnectRid(bindingRoutingId(routingId));
|
|
184
184
|
}
|
|
185
185
|
constructor(socket, receiveTimeoutMs) {
|
|
186
|
-
super(socket);
|
|
186
|
+
super(socket, true);
|
|
187
187
|
socket.options.handover = true;
|
|
188
188
|
socket.options.mandatory = true;
|
|
189
189
|
socket.options.probe = true;
|
|
@@ -213,16 +213,30 @@ class NodeRawRouterPort extends NodeRawSocketPort {
|
|
|
213
213
|
}
|
|
214
214
|
async request(targetRid, parts, timeoutMs) {
|
|
215
215
|
this.requireOpen();
|
|
216
|
+
let submission;
|
|
216
217
|
try {
|
|
217
|
-
|
|
218
|
+
submission = appendRequestParts(this.socket.request(bindingRoutingId(targetRid)), parts)
|
|
218
219
|
.timeout(timeoutMs)
|
|
219
|
-
.submit()
|
|
220
|
+
.submit();
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
throw (0, node_backend_adapter_support_1.translateBindingResultError)(error, 'submit');
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
const replies = await requestReply(submission);
|
|
220
227
|
return copyAndClose(replies);
|
|
221
228
|
}
|
|
222
229
|
catch (error) {
|
|
223
|
-
throw (0, node_backend_adapter_support_1.translateBindingResultError)(error);
|
|
230
|
+
throw (0, node_backend_adapter_support_1.translateBindingResultError)(error, 'completion');
|
|
224
231
|
}
|
|
225
232
|
}
|
|
233
|
+
routesSnapshot() {
|
|
234
|
+
this.requireOpen();
|
|
235
|
+
return this.socket.routesSnapshot().map((route) => ({
|
|
236
|
+
routingId: route.routingId.toString(),
|
|
237
|
+
routeGeneration: route.routeGeneration
|
|
238
|
+
}));
|
|
239
|
+
}
|
|
226
240
|
receive(dontWait = false) {
|
|
227
241
|
this.requireOpen();
|
|
228
242
|
return receiveRecord(this.socket, dontWait, () => {
|
|
@@ -252,16 +266,33 @@ class NodeRawDealerPort extends NodeRawSocketPort {
|
|
|
252
266
|
}
|
|
253
267
|
async request(parts, timeoutMs) {
|
|
254
268
|
this.requireOpen();
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
.submit()
|
|
258
|
-
|
|
269
|
+
let submission;
|
|
270
|
+
try {
|
|
271
|
+
submission = appendRequestParts(this.socket.request(), parts).timeout(timeoutMs).submit();
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
throw (0, node_backend_adapter_support_1.translateBindingResultError)(error, 'submit');
|
|
275
|
+
}
|
|
276
|
+
try {
|
|
277
|
+
const replies = await requestReply(submission);
|
|
278
|
+
return copyAndClose(replies);
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
throw (0, node_backend_adapter_support_1.translateBindingResultError)(error, 'completion');
|
|
282
|
+
}
|
|
259
283
|
}
|
|
260
284
|
receive(dontWait = false) {
|
|
261
285
|
this.requireOpen();
|
|
262
286
|
return receiveRecord(this.socket, dontWait);
|
|
263
287
|
}
|
|
264
288
|
}
|
|
289
|
+
async function requestReply(submission) {
|
|
290
|
+
if (submission.result === zlink_1.SubmitResult.Backpressured) {
|
|
291
|
+
const [, replies] = await Promise.all([submission.admitted, submission.reply]);
|
|
292
|
+
return replies;
|
|
293
|
+
}
|
|
294
|
+
return submission.reply;
|
|
295
|
+
}
|
|
265
296
|
class NodeRawMonitorPort {
|
|
266
297
|
monitor;
|
|
267
298
|
release;
|
|
@@ -290,9 +321,9 @@ class NodeRawMonitorPort {
|
|
|
290
321
|
close() {
|
|
291
322
|
if (this.closed)
|
|
292
323
|
return;
|
|
324
|
+
this.monitor.close();
|
|
293
325
|
this.closed = true;
|
|
294
326
|
this.release();
|
|
295
|
-
this.monitor.close();
|
|
296
327
|
}
|
|
297
328
|
}
|
|
298
329
|
function appendSendParts(operation, parts) {
|
|
@@ -344,6 +375,7 @@ function receiveRecord(socket, dontWait, nextRequestSequence, reply) {
|
|
|
344
375
|
return {
|
|
345
376
|
sourceRid,
|
|
346
377
|
sourceRoute,
|
|
378
|
+
routeGeneration: received.routeGeneration,
|
|
347
379
|
...(requestSeq === undefined ? {} : { requestSeq }),
|
|
348
380
|
...(receivedReply === undefined
|
|
349
381
|
? {}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { SubmitResult, type RequestResult as RequestResultValue, type SubmitResult as SubmitResultValue } from '@zlink-systems/zlink';
|
|
2
|
-
import { type
|
|
2
|
+
import { type RoutingId } from '../../../contracts';
|
|
3
|
+
import type { ApplicationJobQueuePort } from '../../application-jobs/contracts';
|
|
3
4
|
import type { ZLinkDispatchErrorReporter } from '../../channels/dispatch-error-reporter';
|
|
4
|
-
import type { MeshOperationId, MeshPeerEntry, MeshPublisher, ReadyBatch, ReadyRecord, ReceiveBatch, ServiceSpot, StreamSessionService } from '../../foundation/service-runtime-contracts';
|
|
5
5
|
import { type RawServiceRequestResult } from '../../foundation/raw-service-mesh-runtime';
|
|
6
|
-
import {
|
|
7
|
-
import { type
|
|
6
|
+
import type { ServiceInstanceActivationRecoveryEnvelope } from '../../foundation/service-instance-activation-recovery-codec';
|
|
7
|
+
import { type MeshOperationId, type MeshPeerEntry, type MeshPublisher, type ReadyBatch, type ReadyRecord, type ReceiveBatch, type ServiceSpot, type StreamSessionService, MeshNodeRuntimeState } from '../../foundation/service-runtime-contracts';
|
|
8
8
|
import type { ServiceActorRef, ServiceSpotState } from '../../foundation/service-stateful-registry';
|
|
9
|
+
import { type ServiceAsyncInstanceActivationAuthority, type ServiceInstanceApplicationLifecycle, type ServicePendingInstanceActivation, type ServiceSpotMessageFollowSeal, type ServiceUserSpotOperationHandler, type ServiceUserSpotOperationResult } from '../../foundation/service-stateful-runtime';
|
|
9
10
|
import type { ServiceActorCreateRecord, ServiceDirectSpotRouteFence, ServiceInstanceActivationTarget, ServiceInstanceRouteFence, ServiceSpotRouteFence, ServiceUserSpotCloseRecord, ServiceUserSpotCreateRecord } from '../../foundation/service-stateful-wire-codec';
|
|
10
|
-
import type { ServiceInstanceActivationRecoveryEnvelope } from '../../foundation/service-instance-activation-recovery-codec';
|
|
11
11
|
import type { ServiceNodeDescriptor } from '../../foundation/service-topology-registry';
|
|
12
|
-
import type
|
|
13
|
-
import type { ZLinkBackendActorRef,
|
|
12
|
+
import { type ServiceApplicationPayload } from '../../foundation/service-wire-m6a-codec';
|
|
13
|
+
import type { ZLinkBackendActorRef, ZLinkBackendMeshNode, ZLinkBackendObjectPlacement } from '../contracts';
|
|
14
14
|
import type { ZLinkRawBindingPort } from '../raw-binding-port';
|
|
15
|
-
import type
|
|
15
|
+
import { type ZLinkBackendMessageLike as MessageLike } from '../runtime-values';
|
|
16
16
|
/**
|
|
17
17
|
* M6A MeshNode backend. Stateful Spot/Actor entry points stay explicit until
|
|
18
18
|
* their owning M6B runtime is connected; topology and node/channel dispatch do
|
|
@@ -42,6 +42,7 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
42
42
|
private readable;
|
|
43
43
|
private readonly onReadable;
|
|
44
44
|
private readonly onMaintenance;
|
|
45
|
+
private readonly onPendingOperationsChanged;
|
|
45
46
|
private nextPeerIntent;
|
|
46
47
|
private closed;
|
|
47
48
|
private objectRole;
|
|
@@ -128,7 +129,7 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
128
129
|
readonly timeoutMs?: number;
|
|
129
130
|
}): MeshOperationId;
|
|
130
131
|
status(): {
|
|
131
|
-
state:
|
|
132
|
+
state: MeshNodeRuntimeState;
|
|
132
133
|
routingId: RoutingId;
|
|
133
134
|
meshName: string;
|
|
134
135
|
localEndpoint: string;
|
|
@@ -172,7 +173,7 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
172
173
|
restoreUserSpotAuthority(spotId: string, stableType: string, generation: bigint, authorityOwnerGeneration: bigint): ServiceSpot;
|
|
173
174
|
restoreSpotAuthority(spotId: string, objectKind: 'user_spot' | 'instance_spot', stableType: string, generation: bigint, authorityOwnerGeneration: bigint): ServiceSpot;
|
|
174
175
|
createActor(actorId: string): ZLinkBackendActorRef;
|
|
175
|
-
restoreActorAuthority(actorId: string, stableType: string, generation: bigint, authorityOwnerGeneration: bigint, spotId: string, spotGeneration: bigint, membershipEpoch: bigint): ZLinkBackendActorRef;
|
|
176
|
+
restoreActorAuthority(actorId: string, stableType: string, generation: bigint, authorityOwnerGeneration: bigint, spotId: string | undefined, spotGeneration: bigint, membershipEpoch: bigint): ZLinkBackendActorRef;
|
|
176
177
|
discardRelocatedActor(actor: ZLinkBackendActorRef): void;
|
|
177
178
|
restoreActorSessionBinding(actor: ZLinkBackendActorRef, sessionNodeRid: unknown, sessionRid: unknown, bindingGeneration: bigint): void;
|
|
178
179
|
registerInstanceIntent(instanceType: string, route: ServiceInstanceRouteFence, expectedCurrentRoute?: ServiceInstanceRouteFence | null): void;
|
|
@@ -193,8 +194,8 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
193
194
|
abortSpotMessageFollowIngress(seal: ServiceSpotMessageFollowSeal): boolean;
|
|
194
195
|
commitSpotMessageFollowIngress(seal: ServiceSpotMessageFollowSeal, target: ServiceDirectSpotRouteFence, durationMs: number): Promise<boolean>;
|
|
195
196
|
forgetSpotRoute(spot: ServiceSpotRouteFence['spot'], authorityOwnerGeneration: bigint, storeVersion?: string): void;
|
|
196
|
-
sendToInstanceSpot(route: ServiceInstanceRouteFence, parts: MessageLike | readonly MessageLike[], sourceSpotId?: string, metadata?: ReadonlyMap<string, string
|
|
197
|
-
requestInstanceSpot(route: ServiceInstanceRouteFence, parts: MessageLike | readonly MessageLike[], timeoutMs?: number, sourceSpotId?: string, metadata?: ReadonlyMap<string, string
|
|
197
|
+
sendToInstanceSpot(route: ServiceInstanceRouteFence, parts: MessageLike | readonly MessageLike[], sourceSpotId?: string, metadata?: ReadonlyMap<string, string>, instanceIntent?: boolean): Promise<SubmitResult>;
|
|
198
|
+
requestInstanceSpot(route: ServiceInstanceRouteFence, parts: MessageLike | readonly MessageLike[], timeoutMs?: number, sourceSpotId?: string, metadata?: ReadonlyMap<string, string>, instanceIntent?: boolean): MeshOperationId;
|
|
198
199
|
actorLookup(actorId: string): {
|
|
199
200
|
actor: ServiceActorRef;
|
|
200
201
|
spotId: string;
|
|
@@ -229,7 +230,7 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
229
230
|
actorRequestToActor(source: ZLinkBackendActorRef, target: ZLinkBackendActorRef, parts: MessageLike | readonly MessageLike[], options?: {
|
|
230
231
|
readonly timeoutMs?: number;
|
|
231
232
|
}): MeshOperationId;
|
|
232
|
-
sendActorBoundSession(actor: ZLinkBackendActorRef, expectedBindingGeneration: bigint, parts: MessageLike | readonly MessageLike[], _flags?: number
|
|
233
|
+
sendActorBoundSession(actor: ZLinkBackendActorRef, expectedBindingGeneration: bigint, parts: MessageLike | readonly MessageLike[], _flags?: number): Promise<SubmitResultValue>;
|
|
233
234
|
closeActorBoundSession(actor: ZLinkBackendActorRef, expectedBindingGeneration: bigint, timeoutMs?: number): MeshOperationId;
|
|
234
235
|
leaveActor(actor: ZLinkBackendActorRef, expectedMembershipEpoch: bigint, timeoutMs?: number): MeshOperationId;
|
|
235
236
|
createStreamSessionService(stream: unknown): StreamSessionService;
|
|
@@ -261,10 +262,11 @@ export declare class ZLinkNodeRawMeshBackend implements ZLinkBackendMeshNode {
|
|
|
261
262
|
private requireNotStarted;
|
|
262
263
|
}
|
|
263
264
|
/**
|
|
264
|
-
*
|
|
265
|
-
* terminal.
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
265
|
+
* The one classification of a failed node/channel/stateful request into its
|
|
266
|
+
* completion terminal. A binding REQUEST result is Core's decision and is kept
|
|
267
|
+
* as is; a submit failure is classified from its submission or completion phase.
|
|
268
|
+
* A reply that could not be decoded is a protocol
|
|
269
|
+
* failure (spec 32-framework-error-model:91-92). The failure code is a wire
|
|
270
|
+
* code, so a Core result carries 0.
|
|
269
271
|
*/
|
|
270
|
-
export declare function
|
|
272
|
+
export declare function requestFailureResult(error: unknown): RawServiceRequestResult;
|