@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,23 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DefaultZLinkActorManager = exports.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT = exports.createActorMembership = exports.createActorJoinRequest = exports.actorJoinIdentity = exports.ZLinkRemoteBoundSessionFenceError = exports.isRemoteBoundSessionFenceError = exports.encodeRemoteBoundSessionNack = exports.ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET = exports.ZLINK_REMOTE_BOUND_SESSION_RESPONSE_PACKET = exports.ZLINK_REMOTE_BOUND_SESSION_FENCE_NACK_CODE = exports.ZLINK_REMOTE_BOUND_SESSION_ERROR_PACKET = exports.ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET = exports.ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET = exports.decodeRemoteActorSourceLeaveTerminal = exports.ZLINK_REMOTE_ACTOR_SOURCE_LEAVE_TERMINAL = exports.ZLINK_REMOTE_ACTOR_JOIN_PACKET = exports.ZLinkActorTransferRegistry = exports.ZLinkActorNativeJoinCoordinator = exports.ZLinkSpotActorHandlerRegistryRuntime = exports.ZLinkSpotActorDispatcher = exports.ZLinkActorPacketKind = exports.publishInitialActorAuthority = exports.rewriteActorAuthorityOwner = exports.rewriteActorAuthorityRoute = exports.isActorAuthorityPayload = exports.encodeActorAuthorityIdentity = exports.decodeRelocatingActorAuthorityIdentity = exports.decodeActorAuthorityIdentity = exports.
|
|
4
|
-
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
3
|
+
exports.DefaultZLinkActorManager = exports.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT = exports.createActorMembership = exports.createActorJoinRequest = exports.actorJoinIdentity = exports.ZLinkRemoteBoundSessionFenceError = exports.isRemoteBoundSessionFenceError = exports.encodeRemoteBoundSessionNack = exports.ZLINK_REMOTE_BOUND_SESSION_SEND_PACKET = exports.ZLINK_REMOTE_BOUND_SESSION_RESPONSE_PACKET = exports.ZLINK_REMOTE_BOUND_SESSION_FENCE_NACK_CODE = exports.ZLINK_REMOTE_BOUND_SESSION_ERROR_PACKET = exports.ZLINK_REMOTE_ACTOR_SESSION_DISCONNECTED_PACKET = exports.ZLINK_REMOTE_ACTOR_PACKET_RELAY_PACKET = exports.decodeRemoteActorSourceLeaveTerminal = exports.ZLINK_REMOTE_ACTOR_SOURCE_LEAVE_TERMINAL = exports.ZLINK_REMOTE_ACTOR_JOIN_PACKET = exports.ZLinkActorTransferRegistry = exports.ZLinkActorNativeJoinCoordinator = exports.ZLinkSpotActorHandlerRegistryRuntime = exports.ZLinkSpotActorDispatcher = exports.ZLinkActorPacketKind = exports.publishInitialActorAuthority = exports.rewriteActorAuthorityOwner = exports.rewriteActorAuthorityRoute = exports.isActorAuthorityPayload = exports.encodeActorAuthorityIdentity = exports.decodeRelocatingActorAuthorityIdentity = exports.decodeActorAuthorityIdentity = exports.createDeferredJoinCompletion = exports.toFrameworkRoutingId = exports.toFrameworkActorRef = exports.ZLinkActorRuntimeState = exports.decodeActorMessageFollowContext = exports.attachActorMessageFollowContext = exports.actorMessageFollowContext = exports.decodeHandoffPacket = exports.ZLinkActorHandoffCoordinator = exports.DEFAULT_MESSAGE_FOLLOW_DURATION_MS = exports.ZLinkActorSerialExecutor = exports.ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME = exports.DefaultZLinkActorContext = exports.forwardEncodedActorPacket = exports.DefaultZLinkActorClient = void 0;
|
|
5
4
|
const contracts_1 = require("../../contracts");
|
|
6
|
-
const
|
|
7
|
-
const contracts_2 = require("../../contracts");
|
|
8
|
-
const configuration_1 = require("../configuration");
|
|
5
|
+
const Registration_1 = require("../../contracts/Configuration/Registration");
|
|
9
6
|
const abort_1 = require("../abort");
|
|
10
7
|
const mesh_completion_table_1 = require("../backend/mesh-completion-table");
|
|
8
|
+
const runtime_message_1 = require("../backend/runtime-message");
|
|
9
|
+
const configuration_1 = require("../configuration");
|
|
10
|
+
const runtime_metrics_1 = require("../diagnostics/runtime-metrics");
|
|
11
11
|
const execution_1 = require("../execution");
|
|
12
|
+
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
12
13
|
const handler_instance_scope_1 = require("../handlers/handler-instance-scope");
|
|
14
|
+
const payload_codec_1 = require("../messaging/payload-codec");
|
|
15
|
+
const actor_creation_1 = require("./actor-creation");
|
|
16
|
+
const actor_runtime_state_1 = require("./actor-runtime-state");
|
|
17
|
+
const transferred_actor_rollback_1 = require("./transferred-actor-rollback");
|
|
18
|
+
const ACTOR_CREATION_RETRY_INTERVAL_MS = 5;
|
|
19
|
+
const LOCAL_DIAGNOSTIC_NODE_RID = 'local';
|
|
13
20
|
var actor_client_1 = require("./actor-client");
|
|
14
21
|
Object.defineProperty(exports, "DefaultZLinkActorClient", { enumerable: true, get: function () { return actor_client_1.DefaultZLinkActorClient; } });
|
|
15
22
|
Object.defineProperty(exports, "forwardEncodedActorPacket", { enumerable: true, get: function () { return actor_client_1.forwardEncodedActorPacket; } });
|
|
16
|
-
const payload_codec_1 = require("../messaging/payload-codec");
|
|
17
23
|
var actor_context_1 = require("./actor-context");
|
|
18
24
|
Object.defineProperty(exports, "DefaultZLinkActorContext", { enumerable: true, get: function () { return actor_context_1.DefaultZLinkActorContext; } });
|
|
19
25
|
Object.defineProperty(exports, "ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME", { enumerable: true, get: function () { return actor_context_1.ZLINK_ACTOR_JOIN_ENTRY_SPOT_RUNTIME; } });
|
|
20
|
-
const actor_creation_1 = require("./actor-creation");
|
|
21
26
|
var actor_mailbox_1 = require("./actor-mailbox");
|
|
22
27
|
Object.defineProperty(exports, "ZLinkActorSerialExecutor", { enumerable: true, get: function () { return actor_mailbox_1.ZLinkActorSerialExecutor; } });
|
|
23
28
|
var actor_handoff_1 = require("./actor-handoff");
|
|
@@ -28,15 +33,12 @@ var actor_message_follow_context_1 = require("./actor-message-follow-context");
|
|
|
28
33
|
Object.defineProperty(exports, "actorMessageFollowContext", { enumerable: true, get: function () { return actor_message_follow_context_1.actorMessageFollowContext; } });
|
|
29
34
|
Object.defineProperty(exports, "attachActorMessageFollowContext", { enumerable: true, get: function () { return actor_message_follow_context_1.attachActorMessageFollowContext; } });
|
|
30
35
|
Object.defineProperty(exports, "decodeActorMessageFollowContext", { enumerable: true, get: function () { return actor_message_follow_context_1.decodeActorMessageFollowContext; } });
|
|
31
|
-
var
|
|
32
|
-
Object.defineProperty(exports, "ZLinkActorRuntimeState", { enumerable: true, get: function () { return
|
|
33
|
-
Object.defineProperty(exports, "
|
|
34
|
-
Object.defineProperty(exports, "
|
|
35
|
-
|
|
36
|
-
Object.defineProperty(exports, "
|
|
37
|
-
var deferred_join_accepted_journal_1 = require("./deferred-join-accepted-journal");
|
|
38
|
-
Object.defineProperty(exports, "isDeferredJoinAcceptedRootPublication", { enumerable: true, get: function () { return deferred_join_accepted_journal_1.isDeferredJoinAcceptedRootPublication; } });
|
|
39
|
-
Object.defineProperty(exports, "ZLinkDeferredJoinAcceptedJournal", { enumerable: true, get: function () { return deferred_join_accepted_journal_1.ZLinkDeferredJoinAcceptedJournal; } });
|
|
36
|
+
var actor_runtime_state_2 = require("./actor-runtime-state");
|
|
37
|
+
Object.defineProperty(exports, "ZLinkActorRuntimeState", { enumerable: true, get: function () { return actor_runtime_state_2.ZLinkActorRuntimeState; } });
|
|
38
|
+
Object.defineProperty(exports, "toFrameworkActorRef", { enumerable: true, get: function () { return actor_runtime_state_2.toFrameworkActorRef; } });
|
|
39
|
+
Object.defineProperty(exports, "toFrameworkRoutingId", { enumerable: true, get: function () { return actor_runtime_state_2.toFrameworkRoutingId; } });
|
|
40
|
+
var deferred_join_completion_1 = require("./deferred-join-completion");
|
|
41
|
+
Object.defineProperty(exports, "createDeferredJoinCompletion", { enumerable: true, get: function () { return deferred_join_completion_1.createDeferredJoinCompletion; } });
|
|
40
42
|
var actor_authority_publication_1 = require("./actor-authority-publication");
|
|
41
43
|
Object.defineProperty(exports, "decodeActorAuthorityIdentity", { enumerable: true, get: function () { return actor_authority_publication_1.decodeActorAuthorityIdentity; } });
|
|
42
44
|
Object.defineProperty(exports, "decodeRelocatingActorAuthorityIdentity", { enumerable: true, get: function () { return actor_authority_publication_1.decodeRelocatingActorAuthorityIdentity; } });
|
|
@@ -45,14 +47,12 @@ Object.defineProperty(exports, "isActorAuthorityPayload", { enumerable: true, ge
|
|
|
45
47
|
Object.defineProperty(exports, "rewriteActorAuthorityRoute", { enumerable: true, get: function () { return actor_authority_publication_1.rewriteActorAuthorityRoute; } });
|
|
46
48
|
Object.defineProperty(exports, "rewriteActorAuthorityOwner", { enumerable: true, get: function () { return actor_authority_publication_1.rewriteActorAuthorityOwner; } });
|
|
47
49
|
Object.defineProperty(exports, "publishInitialActorAuthority", { enumerable: true, get: function () { return actor_authority_publication_1.publishInitialActorAuthority; } });
|
|
48
|
-
const actor_runtime_state_2 = require("./actor-runtime-state");
|
|
49
50
|
var spot_actor_dispatch_1 = require("./spot-actor-dispatch");
|
|
50
51
|
Object.defineProperty(exports, "ZLinkActorPacketKind", { enumerable: true, get: function () { return spot_actor_dispatch_1.ZLinkActorPacketKind; } });
|
|
51
52
|
Object.defineProperty(exports, "ZLinkSpotActorDispatcher", { enumerable: true, get: function () { return spot_actor_dispatch_1.ZLinkSpotActorDispatcher; } });
|
|
52
53
|
Object.defineProperty(exports, "ZLinkSpotActorHandlerRegistryRuntime", { enumerable: true, get: function () { return spot_actor_dispatch_1.ZLinkSpotActorHandlerRegistryRuntime; } });
|
|
53
54
|
var actor_remote_joiner_1 = require("./actor-remote-joiner");
|
|
54
55
|
Object.defineProperty(exports, "ZLinkActorNativeJoinCoordinator", { enumerable: true, get: function () { return actor_remote_joiner_1.ZLinkActorNativeJoinCoordinator; } });
|
|
55
|
-
const transferred_actor_rollback_1 = require("./transferred-actor-rollback");
|
|
56
56
|
var actor_transfer_registry_1 = require("./actor-transfer-registry");
|
|
57
57
|
Object.defineProperty(exports, "ZLinkActorTransferRegistry", { enumerable: true, get: function () { return actor_transfer_registry_1.ZLinkActorTransferRegistry; } });
|
|
58
58
|
var actor_remote_wire_1 = require("./actor-remote-wire");
|
|
@@ -77,15 +77,20 @@ Object.defineProperty(exports, "createActorMembership", { enumerable: true, get:
|
|
|
77
77
|
Object.defineProperty(exports, "ZLINK_ACTOR_LIFECYCLE_SNAPSHOT", { enumerable: true, get: function () { return actor_lifecycle_snapshot_1.ZLINK_ACTOR_LIFECYCLE_SNAPSHOT; } });
|
|
78
78
|
class DefaultZLinkActorManager {
|
|
79
79
|
options;
|
|
80
|
+
detachedTaskRunner;
|
|
80
81
|
states = new Map();
|
|
81
82
|
actorMeshNames = new Map();
|
|
82
83
|
relocationStaged = new Set();
|
|
83
84
|
creation;
|
|
84
85
|
transferredActorRollback;
|
|
85
|
-
constructor(options) {
|
|
86
|
+
constructor(options, detachedTaskRunner) {
|
|
86
87
|
this.options = options;
|
|
88
|
+
this.detachedTaskRunner = detachedTaskRunner;
|
|
89
|
+
if (detachedTaskRunner === undefined) {
|
|
90
|
+
throw new Error('Actor manager requires a detached task runner.');
|
|
91
|
+
}
|
|
87
92
|
this.creation = new actor_creation_1.ZLinkActorCreationCoordinator(options);
|
|
88
|
-
this.transferredActorRollback = new transferred_actor_rollback_1.ZLinkTransferredActorRollbackCoordinator(this.states, options);
|
|
93
|
+
this.transferredActorRollback = new transferred_actor_rollback_1.ZLinkTransferredActorRollbackCoordinator(this.states, options, (actorId, state) => this.finalizeDestroyedActor(actorId, state));
|
|
89
94
|
}
|
|
90
95
|
create(actorId, actorType) {
|
|
91
96
|
return new ZLinkActorCreateCallRuntime((options, signal) => this.submitCreate(actorId, actorType, true, options, signal));
|
|
@@ -129,7 +134,6 @@ class DefaultZLinkActorManager {
|
|
|
129
134
|
if (state.isMoving) {
|
|
130
135
|
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorMoving, `Actor '${actor.actorId}' is relocating.`);
|
|
131
136
|
}
|
|
132
|
-
const actorInstance = state.actor;
|
|
133
137
|
const node = this.options.nativeActorNodeProvider?.() ?? this.options.nativeActorNode;
|
|
134
138
|
const completions = this.options.nativeActorCompletionTableProvider?.();
|
|
135
139
|
const entryNodeRid = state.entryNodeRid ?? current.nodeRid;
|
|
@@ -156,14 +160,7 @@ class DefaultZLinkActorManager {
|
|
|
156
160
|
if (state.actorType !== undefined && state.ownsLocation) {
|
|
157
161
|
await this.options.locationLifecycle?.releaseActor(state.actorType, actor.actorId, current);
|
|
158
162
|
}
|
|
159
|
-
this.
|
|
160
|
-
await (0, handler_instance_scope_1.disposeLifecycleHandlers)(actorInstance);
|
|
161
|
-
state.clearAfterDestroy();
|
|
162
|
-
if (this.states.get(actor.actorId) === state) {
|
|
163
|
-
this.states.delete(actor.actorId);
|
|
164
|
-
this.actorMeshNames.delete(actor.actorId);
|
|
165
|
-
}
|
|
166
|
-
this.options.metrics?.change('zlink.actor.count', -1);
|
|
163
|
+
await this.finalizeDestroyedActor(actor.actorId, state);
|
|
167
164
|
});
|
|
168
165
|
try {
|
|
169
166
|
await destroyTask;
|
|
@@ -179,7 +176,7 @@ class DefaultZLinkActorManager {
|
|
|
179
176
|
const state = this.getOrCreateState(actorId);
|
|
180
177
|
this.rememberActorMeshFromType(actorId, actorType);
|
|
181
178
|
if (state.actor !== undefined) {
|
|
182
|
-
await (0, handler_instance_scope_1.disposeLifecycleHandlers)(state.actor);
|
|
179
|
+
await (0, handler_instance_scope_1.disposeLifecycleHandlers)(state.actor, this.detachedTaskRunner);
|
|
183
180
|
}
|
|
184
181
|
state.prepareForRemoteReentry();
|
|
185
182
|
const operation = state.getOrStartCreation(actorType, false, () => this.creation.materializeTransferredActor(actorId, actorType, state, adapterKey === undefined
|
|
@@ -285,7 +282,7 @@ class DefaultZLinkActorManager {
|
|
|
285
282
|
this.relocationStaged.add(actorId);
|
|
286
283
|
let nativeRef;
|
|
287
284
|
try {
|
|
288
|
-
nativeRef = restore.call(node, actorId, actorType, objectGeneration, authorityOwnerGeneration, String(spotId), spotGeneration, membershipEpoch);
|
|
285
|
+
nativeRef = restore.call(node, actorId, actorType, objectGeneration, authorityOwnerGeneration, spotId === undefined ? undefined : String(spotId), spotGeneration, membershipEpoch);
|
|
289
286
|
this.rememberActorMeshFromType(actorId, actorType);
|
|
290
287
|
const state = this.getOrCreateState(actorId);
|
|
291
288
|
state.setNativeActorRef(nativeRef);
|
|
@@ -303,7 +300,8 @@ class DefaultZLinkActorManager {
|
|
|
303
300
|
await registry.restore(transfer.adapterKey, actor, transfer.state, signal);
|
|
304
301
|
}
|
|
305
302
|
state.setLocationGeneration(authorityOwnerGeneration);
|
|
306
|
-
|
|
303
|
+
if (spotId !== undefined)
|
|
304
|
+
state.setJoinedSpot(spotId, undefined, membershipEpoch);
|
|
307
305
|
return actor;
|
|
308
306
|
}
|
|
309
307
|
catch (error) {
|
|
@@ -311,12 +309,7 @@ class DefaultZLinkActorManager {
|
|
|
311
309
|
node.discardRelocatedActor?.(nativeRef);
|
|
312
310
|
this.relocationStaged.delete(actorId);
|
|
313
311
|
const failedState = this.states.get(actorId);
|
|
314
|
-
|
|
315
|
-
await (0, handler_instance_scope_1.disposeLifecycleHandlers)(failedState.actor);
|
|
316
|
-
}
|
|
317
|
-
failedState?.clearAfterDestroy();
|
|
318
|
-
this.states.delete(actorId);
|
|
319
|
-
this.actorMeshNames.delete(actorId);
|
|
312
|
+
await this.finalizeActorState(actorId, failedState);
|
|
320
313
|
throw error;
|
|
321
314
|
}
|
|
322
315
|
}
|
|
@@ -336,26 +329,57 @@ class DefaultZLinkActorManager {
|
|
|
336
329
|
const state = this.states.get(actorId);
|
|
337
330
|
const node = this.options.nativeActorNodeProvider?.() ?? this.options.nativeActorNode;
|
|
338
331
|
const nativeActorRef = exactNativeActorRef ?? state?.nativeActorRef;
|
|
339
|
-
|
|
340
|
-
|
|
332
|
+
const failures = [];
|
|
333
|
+
try {
|
|
334
|
+
if (nativeActorRef !== undefined) {
|
|
335
|
+
node?.discardRelocatedActor?.(nativeActorRef);
|
|
336
|
+
}
|
|
341
337
|
}
|
|
342
|
-
|
|
343
|
-
|
|
338
|
+
catch (error) {
|
|
339
|
+
failures.push(error);
|
|
340
|
+
}
|
|
341
|
+
try {
|
|
342
|
+
await this.completeCoreRelocationSource(actorId);
|
|
343
|
+
}
|
|
344
|
+
catch (error) {
|
|
345
|
+
failures.push(error);
|
|
346
|
+
}
|
|
347
|
+
if (failures.length > 0) {
|
|
348
|
+
throw failures.length === 1
|
|
349
|
+
? failures[0]
|
|
350
|
+
: new AggregateError(failures, 'Actor relocation cleanup failed.');
|
|
344
351
|
}
|
|
345
|
-
state?.clearAfterDestroy();
|
|
346
|
-
this.states.delete(actorId);
|
|
347
|
-
this.actorMeshNames.delete(actorId);
|
|
348
|
-
this.relocationStaged.delete(actorId);
|
|
349
352
|
}
|
|
350
353
|
async completeCoreRelocationSource(actorId) {
|
|
351
354
|
const state = this.states.get(actorId);
|
|
352
|
-
|
|
353
|
-
|
|
355
|
+
await this.finalizeActorState(actorId, state);
|
|
356
|
+
}
|
|
357
|
+
async finalizeActorState(actorId, state) {
|
|
358
|
+
if (state === undefined || this.states.get(actorId) !== state)
|
|
359
|
+
return;
|
|
360
|
+
try {
|
|
361
|
+
if (state.actor !== undefined)
|
|
362
|
+
await (0, handler_instance_scope_1.disposeLifecycleHandlers)(state.actor, this.detachedTaskRunner);
|
|
363
|
+
}
|
|
364
|
+
finally {
|
|
365
|
+
state.clearAfterDestroy();
|
|
366
|
+
if (this.states.get(actorId) === state) {
|
|
367
|
+
this.states.delete(actorId);
|
|
368
|
+
this.actorMeshNames.delete(actorId);
|
|
369
|
+
this.relocationStaged.delete(actorId);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
async finalizeDestroyedActor(actorId, state) {
|
|
374
|
+
if (this.states.get(actorId) !== state)
|
|
375
|
+
return;
|
|
376
|
+
try {
|
|
377
|
+
this.options.actorDestroyedCleanup?.(actorId);
|
|
378
|
+
}
|
|
379
|
+
finally {
|
|
380
|
+
await this.finalizeActorState(actorId, state);
|
|
381
|
+
this.options.metrics?.change(runtime_metrics_1.METRIC_NAMES.ActorCount, -1);
|
|
354
382
|
}
|
|
355
|
-
state?.clearAfterDestroy();
|
|
356
|
-
this.states.delete(actorId);
|
|
357
|
-
this.actorMeshNames.delete(actorId);
|
|
358
|
-
this.relocationStaged.delete(actorId);
|
|
359
383
|
}
|
|
360
384
|
async getOrCreateActor(actorId, actorType, signal) {
|
|
361
385
|
this.rememberActorMeshFromType(actorId, actorType);
|
|
@@ -375,7 +399,7 @@ class DefaultZLinkActorManager {
|
|
|
375
399
|
}
|
|
376
400
|
async createReservedActorResult(actorId, actorType, createRequest, signal, nativeActorRef) {
|
|
377
401
|
this.rememberActorMeshFromType(actorId, actorType);
|
|
378
|
-
return await this.createOrGet(actorId, actorType, false, createRequest, signal, false,
|
|
402
|
+
return await this.createOrGet(actorId, actorType, false, createRequest, signal, false, Registration_1.DEFAULT_REQUEST_TIMEOUT_MS, nativeActorRef);
|
|
379
403
|
}
|
|
380
404
|
adoptCreatedAuthority(actorId, authorityOwnerGeneration, ownerLeaseGeneration) {
|
|
381
405
|
const state = this.states.get(actorId);
|
|
@@ -406,7 +430,7 @@ class DefaultZLinkActorManager {
|
|
|
406
430
|
throw (0, framework_errors_internal_1.createInternalFrameworkException)(framework_errors_internal_1.ZLinkFrameworkInternalErrorKind.ActorRouteNotFound, `Actor '${actor.context.actorId}' must leave its current SPOT before destroy.`);
|
|
407
431
|
}
|
|
408
432
|
const destroyTask = state.getOrStartDestroy(entryNodeRid, async (actorRef) => {
|
|
409
|
-
const destroyedActorRef = actorRef === undefined ? undefined : (0,
|
|
433
|
+
const destroyedActorRef = actorRef === undefined ? undefined : (0, actor_runtime_state_1.toFrameworkActorRef)(actorRef, state.meshName ?? '');
|
|
410
434
|
if (actorRef !== undefined) {
|
|
411
435
|
await node.destroyActor(actorRef, 0, destroySignal);
|
|
412
436
|
state.markNativeActorDestroyed(actorRef);
|
|
@@ -414,14 +438,7 @@ class DefaultZLinkActorManager {
|
|
|
414
438
|
if (state.actorType !== undefined && state.ownsLocation) {
|
|
415
439
|
await this.options.locationLifecycle?.releaseActor(state.actorType, actor.context.actorId, destroyedActorRef);
|
|
416
440
|
}
|
|
417
|
-
this.
|
|
418
|
-
await (0, handler_instance_scope_1.disposeLifecycleHandlers)(actor);
|
|
419
|
-
state.clearAfterDestroy();
|
|
420
|
-
if (this.states.get(actor.context.actorId) === state) {
|
|
421
|
-
this.states.delete(actor.context.actorId);
|
|
422
|
-
this.actorMeshNames.delete(actor.context.actorId);
|
|
423
|
-
}
|
|
424
|
-
this.options.metrics?.change('zlink.actor.count', -1);
|
|
441
|
+
await this.finalizeDestroyedActor(actor.context.actorId, state);
|
|
425
442
|
});
|
|
426
443
|
try {
|
|
427
444
|
await destroyTask;
|
|
@@ -431,7 +448,7 @@ class DefaultZLinkActorManager {
|
|
|
431
448
|
throw error;
|
|
432
449
|
}
|
|
433
450
|
}
|
|
434
|
-
async createOrGet(actorId, actorType, failIfExists, request, signal, claimLocation = true, timeoutMs =
|
|
451
|
+
async createOrGet(actorId, actorType, failIfExists, request, signal, claimLocation = true, timeoutMs = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS, nativeActorRef) {
|
|
435
452
|
const deadline = performance.now() + timeoutMs;
|
|
436
453
|
const requestedMeshName = this.actorMeshNames.get(actorId);
|
|
437
454
|
for (;;) {
|
|
@@ -451,7 +468,18 @@ class DefaultZLinkActorManager {
|
|
|
451
468
|
if (request !== undefined && createRequest.nativeRequest !== undefined) {
|
|
452
469
|
state.setCreateRequestPayload(createRequest.nativeRequest.data());
|
|
453
470
|
}
|
|
454
|
-
const operation = state.getOrStartCreation(actorType, failIfExists, () =>
|
|
471
|
+
const operation = state.getOrStartCreation(actorType, failIfExists, async () => {
|
|
472
|
+
const meshName = state.meshName ?? this.options.actorMeshNameProvider?.(actorType);
|
|
473
|
+
const release = meshName === undefined
|
|
474
|
+
? undefined
|
|
475
|
+
: await this.options.activationAdmission?.acquire(meshName, signal);
|
|
476
|
+
try {
|
|
477
|
+
return await this.creation.createActor(actorId, actorType, state, createRequest, claimLocation, signal);
|
|
478
|
+
}
|
|
479
|
+
finally {
|
|
480
|
+
release?.();
|
|
481
|
+
}
|
|
482
|
+
});
|
|
455
483
|
if (operation.created) {
|
|
456
484
|
void operation.task.then((result) => {
|
|
457
485
|
if (result.status !== 'created') {
|
|
@@ -499,7 +527,7 @@ class DefaultZLinkActorManager {
|
|
|
499
527
|
if (this.states.get(actorId) === state) {
|
|
500
528
|
this.states.delete(actorId);
|
|
501
529
|
this.actorMeshNames.delete(actorId);
|
|
502
|
-
this.options.metrics?.change(
|
|
530
|
+
this.options.metrics?.change(runtime_metrics_1.METRIC_NAMES.ActorCount, -1);
|
|
503
531
|
}
|
|
504
532
|
}
|
|
505
533
|
createRequestMessage(request) {
|
|
@@ -507,13 +535,13 @@ class DefaultZLinkActorManager {
|
|
|
507
535
|
const empty = runtime_message_1.ZLinkBufferMessage.from(Buffer.alloc(0));
|
|
508
536
|
return {
|
|
509
537
|
nativeRequest: empty,
|
|
510
|
-
callbackRequest:
|
|
538
|
+
callbackRequest: contracts_1.ZLinkMessage.fromEncoded(contracts_1.ZLinkEncodedPayload.from(empty.data()))
|
|
511
539
|
};
|
|
512
540
|
}
|
|
513
541
|
const nativeRequest = (0, payload_codec_1.encodeFrameworkPayloadMessage)(request, this.options.messageSerializers);
|
|
514
542
|
return {
|
|
515
543
|
nativeRequest,
|
|
516
|
-
callbackRequest:
|
|
544
|
+
callbackRequest: contracts_1.ZLinkMessage.fromEncoded(contracts_1.ZLinkEncodedPayload.from(nativeRequest.data()))
|
|
517
545
|
};
|
|
518
546
|
}
|
|
519
547
|
getOrCreateState(actorId) {
|
|
@@ -521,25 +549,25 @@ class DefaultZLinkActorManager {
|
|
|
521
549
|
if (existing !== undefined) {
|
|
522
550
|
return existing;
|
|
523
551
|
}
|
|
524
|
-
const state = new
|
|
552
|
+
const state = new actor_runtime_state_1.ZLinkActorRuntimeState(actorId);
|
|
525
553
|
const remembered = this.actorMeshNames.get(actorId);
|
|
526
554
|
if (remembered !== undefined) {
|
|
527
555
|
state.rememberMeshName(remembered);
|
|
528
556
|
}
|
|
529
557
|
this.states.set(actorId, state);
|
|
530
|
-
this.options.metrics?.change(
|
|
558
|
+
this.options.metrics?.change(runtime_metrics_1.METRIC_NAMES.ActorCount, 1);
|
|
531
559
|
return state;
|
|
532
560
|
}
|
|
533
561
|
actorRefForState(state) {
|
|
534
562
|
const nativeActorRef = state.nativeActorRef;
|
|
535
563
|
if (nativeActorRef !== undefined) {
|
|
536
|
-
return (0,
|
|
564
|
+
return (0, actor_runtime_state_1.toFrameworkActorRef)(nativeActorRef, state.meshName ?? '');
|
|
537
565
|
}
|
|
538
566
|
return {
|
|
539
567
|
actorId: state.actorId,
|
|
540
568
|
objectGeneration: 1n,
|
|
541
569
|
meshName: state.meshName ?? '',
|
|
542
|
-
nodeRid: this.options.actorCreatedNodeRidProvider?.() ??
|
|
570
|
+
nodeRid: this.options.actorCreatedNodeRidProvider?.() ?? LOCAL_DIAGNOSTIC_NODE_RID
|
|
543
571
|
};
|
|
544
572
|
}
|
|
545
573
|
}
|
|
@@ -549,7 +577,7 @@ class ZLinkActorCreateCallRuntime {
|
|
|
549
577
|
meshNameValue;
|
|
550
578
|
requestValue;
|
|
551
579
|
requestConfigured = false;
|
|
552
|
-
timeoutMsValue =
|
|
580
|
+
timeoutMsValue = Registration_1.DEFAULT_REQUEST_TIMEOUT_MS;
|
|
553
581
|
timeoutConfigured = false;
|
|
554
582
|
submitted = false;
|
|
555
583
|
turn = (0, execution_1.captureZLinkSpotSerialTurn)();
|
|
@@ -633,7 +661,7 @@ async function waitForCreationRetry(signal) {
|
|
|
633
661
|
else
|
|
634
662
|
reject(error);
|
|
635
663
|
};
|
|
636
|
-
const timer = setTimeout(() => finish(),
|
|
664
|
+
const timer = setTimeout(() => finish(), ACTOR_CREATION_RETRY_INTERVAL_MS);
|
|
637
665
|
const onAbort = () => {
|
|
638
666
|
finish(signal?.reason ?? new Error('Actor creation was aborted.'));
|
|
639
667
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
|
|
1
|
+
import { type Type, type ZLinkActor, type ZLinkActorHandlerRegistry, type ZLinkMessageContext, type ZLinkMessageSerializer, type ZLinkSpot, type ZLinkSpotActorJoinResult } from '../../contracts';
|
|
3
2
|
import type { Message } from '../../contracts/Common/Message';
|
|
4
|
-
import type {
|
|
3
|
+
import type { ZLinkProviderResolver } from '../../contracts/Common/ZLinkProviderResolver';
|
|
5
4
|
import type { ZLinkSerialWorkOptions } from '../execution/serial-execution-queue';
|
|
6
5
|
export declare enum ZLinkActorPacketKind {
|
|
7
6
|
Send = "send",
|
|
@@ -12,6 +11,7 @@ export interface ZLinkActorPacketDescriptor {
|
|
|
12
11
|
readonly packetName: string;
|
|
13
12
|
readonly actorType: Type<ZLinkActor>;
|
|
14
13
|
readonly handlerType: Type;
|
|
14
|
+
readonly methodName?: string;
|
|
15
15
|
}
|
|
16
16
|
export declare class ZLinkSpotActorHandlerRegistryRuntime implements ZLinkActorHandlerRegistry {
|
|
17
17
|
private readonly packets;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkSpotActorDispatcher = exports.ZLinkSpotActorHandlerRegistryRuntime = exports.ZLinkActorPacketKind = void 0;
|
|
4
|
-
const
|
|
4
|
+
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
5
5
|
const contracts_1 = require("../../contracts");
|
|
6
|
-
const configuration_1 = require("../configuration");
|
|
7
6
|
const Attributes_1 = require("../../contracts/Handlers/Attributes");
|
|
7
|
+
const configuration_1 = require("../configuration");
|
|
8
|
+
const framework_errors_internal_1 = require("../framework-errors-internal");
|
|
9
|
+
const handler_instance_scope_1 = require("../handlers/handler-instance-scope");
|
|
8
10
|
const payload_codec_1 = require("../messaging/payload-codec");
|
|
9
|
-
const actor_lifecycle_snapshot_1 = require("./actor-lifecycle-snapshot");
|
|
10
11
|
const actor_join_deferred_scope_1 = require("./actor-join-deferred-scope");
|
|
11
|
-
const
|
|
12
|
+
const actor_lifecycle_snapshot_1 = require("./actor-lifecycle-snapshot");
|
|
12
13
|
var ZLinkActorPacketKind;
|
|
13
14
|
(function (ZLinkActorPacketKind) {
|
|
14
15
|
ZLinkActorPacketKind["Send"] = "send";
|
|
@@ -28,7 +29,8 @@ class ZLinkSpotActorHandlerRegistryRuntime {
|
|
|
28
29
|
: ZLinkActorPacketKind.Request,
|
|
29
30
|
packetName: resolvedPacketName,
|
|
30
31
|
actorType: Object,
|
|
31
|
-
handlerType
|
|
32
|
+
handlerType,
|
|
33
|
+
methodName: metadata.methodName
|
|
32
34
|
});
|
|
33
35
|
}
|
|
34
36
|
addPacket(descriptor) {
|
|
@@ -36,7 +38,13 @@ class ZLinkSpotActorHandlerRegistryRuntime {
|
|
|
36
38
|
if (this.packets.has(key)) {
|
|
37
39
|
throw new configuration_1.ZLinkConfigurationException(`Actor packet '${descriptor.packetName}' for '${descriptor.actorType.name}' is already registered.`);
|
|
38
40
|
}
|
|
39
|
-
|
|
41
|
+
const metadata = (0, Attributes_1.readZLinkDecoratorMetadata)(descriptor.handlerType).find((entry) => entry.kind ===
|
|
42
|
+
(descriptor.kind === ZLinkActorPacketKind.Send ? 'spotActorSend' : 'spotActorRequest') &&
|
|
43
|
+
entry.packetName === descriptor.packetName);
|
|
44
|
+
this.packets.set(key, {
|
|
45
|
+
...descriptor,
|
|
46
|
+
methodName: descriptor.methodName ?? metadata?.methodName
|
|
47
|
+
});
|
|
40
48
|
return this;
|
|
41
49
|
}
|
|
42
50
|
resolvePacket(kind, actor, packetName) {
|
|
@@ -73,7 +81,7 @@ class ZLinkSpotActorDispatcher {
|
|
|
73
81
|
const descriptor = this.requirePacket(ZLinkActorPacketKind.Send, actor, packetName);
|
|
74
82
|
const message = decode();
|
|
75
83
|
this.options.onHandlerStart?.();
|
|
76
|
-
await this.invokeHandler(actor, descriptor, (handler) => (0, actor_join_deferred_scope_1.runActorHandlerWithDeferredJoins)(() =>
|
|
84
|
+
await this.invokeHandler(actor, descriptor, (handler, method) => (0, actor_join_deferred_scope_1.runActorHandlerWithDeferredJoins)(() => method.call(handler, this.options.spot, actor, this.createContext(packetName, context), message)));
|
|
77
85
|
});
|
|
78
86
|
}
|
|
79
87
|
dispatchRequest(actor, packetName, request, context = {}) {
|
|
@@ -90,7 +98,7 @@ class ZLinkSpotActorDispatcher {
|
|
|
90
98
|
const descriptor = this.requirePacket(ZLinkActorPacketKind.Request, actor, packetName);
|
|
91
99
|
const request = decode();
|
|
92
100
|
this.options.onHandlerStart?.();
|
|
93
|
-
return await this.invokeHandler(actor, descriptor, (handler) => (0, actor_join_deferred_scope_1.runActorHandlerWithDeferredJoins)(() =>
|
|
101
|
+
return await this.invokeHandler(actor, descriptor, (handler, method) => (0, actor_join_deferred_scope_1.runActorHandlerWithDeferredJoins)(() => method.call(handler, this.options.spot, actor, this.createContext(packetName, context), request), (reply) => afterReply(reply, {
|
|
94
102
|
metadata: new Map(),
|
|
95
103
|
compressPayload: false
|
|
96
104
|
}), beforeReply === undefined
|
|
@@ -109,7 +117,7 @@ class ZLinkSpotActorDispatcher {
|
|
|
109
117
|
return result;
|
|
110
118
|
});
|
|
111
119
|
}
|
|
112
|
-
evaluateActorJoin(actor, request, contentType =
|
|
120
|
+
evaluateActorJoin(actor, request, contentType = stream_wire_1.ZlinkStreamContentType.Json) {
|
|
113
121
|
return this.execute(async () => {
|
|
114
122
|
const payload = (0, payload_codec_1.wrapFrameworkPayloadMessage)(request, this.options.messageSerializers, contentType);
|
|
115
123
|
const onActorJoin = this.options.spot.onActorJoin;
|
|
@@ -151,7 +159,14 @@ class ZLinkSpotActorDispatcher {
|
|
|
151
159
|
throw actorDispatchHandlerNotFound(`Actor handler '${descriptor.handlerType.name}' expects actor '${descriptor.actorType.name}'.`);
|
|
152
160
|
}
|
|
153
161
|
async invokeHandler(actor, descriptor, callback) {
|
|
154
|
-
return await (0, handler_instance_scope_1.runWithLifecycleHandler)(actor, descriptor.handlerType, this.options.providerResolver, (resolved) =>
|
|
162
|
+
return await (0, handler_instance_scope_1.runWithLifecycleHandler)(actor, descriptor.handlerType, this.options.providerResolver, (resolved) => {
|
|
163
|
+
const methodName = descriptor.methodName ?? 'handle';
|
|
164
|
+
const method = resolved[methodName];
|
|
165
|
+
if (typeof method !== 'function') {
|
|
166
|
+
throw new configuration_1.ZLinkConfigurationException(`Actor handler '${descriptor.handlerType.name}.${methodName}' is not callable.`);
|
|
167
|
+
}
|
|
168
|
+
return callback(resolved, method);
|
|
169
|
+
});
|
|
155
170
|
}
|
|
156
171
|
execute(operation) {
|
|
157
172
|
const pending = this.options.serial?.execute(operation, this.options.serialWorkOptions) ??
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import type { ZLinkActor } from '../../contracts';
|
|
2
2
|
import type { ZLinkActorManagerOptions } from './actor-runtime-contracts';
|
|
3
3
|
import type { ZLinkActorRuntimeState } from './actor-runtime-state';
|
|
4
|
-
type ZLinkTransferredActorRollbackOptions = Pick<ZLinkActorManagerOptions, '
|
|
4
|
+
type ZLinkTransferredActorRollbackOptions = Pick<ZLinkActorManagerOptions, 'nativeActorNode' | 'nativeActorNodeProvider' | 'nativeActorCompletionTableProvider'>;
|
|
5
5
|
export declare class ZLinkTransferredActorRollbackCoordinator {
|
|
6
6
|
private readonly states;
|
|
7
7
|
private readonly options;
|
|
8
|
-
private readonly
|
|
9
|
-
constructor(states: Map<string, ZLinkActorRuntimeState>, options: ZLinkTransferredActorRollbackOptions);
|
|
8
|
+
private readonly finalize;
|
|
9
|
+
constructor(states: Map<string, ZLinkActorRuntimeState>, options: ZLinkTransferredActorRollbackOptions, finalize: (actorId: string, state: ZLinkActorRuntimeState) => Promise<void>);
|
|
10
10
|
rollback(actor: ZLinkActor, signal?: AbortSignal): Promise<void>;
|
|
11
|
-
private schedule;
|
|
12
|
-
private retry;
|
|
13
11
|
private destroyNativeActor;
|
|
14
12
|
private complete;
|
|
15
13
|
}
|
|
@@ -3,14 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ZLinkTransferredActorRollbackCoordinator = void 0;
|
|
4
4
|
const backend_1 = require("../backend");
|
|
5
5
|
const runtime_values_1 = require("../backend/runtime-values");
|
|
6
|
-
const
|
|
6
|
+
const actor_lifecycle_snapshot_1 = require("./actor-lifecycle-snapshot");
|
|
7
7
|
class ZLinkTransferredActorRollbackCoordinator {
|
|
8
8
|
states;
|
|
9
9
|
options;
|
|
10
|
-
|
|
11
|
-
constructor(states, options) {
|
|
10
|
+
finalize;
|
|
11
|
+
constructor(states, options, finalize) {
|
|
12
12
|
this.states = states;
|
|
13
13
|
this.options = options;
|
|
14
|
+
this.finalize = finalize;
|
|
14
15
|
}
|
|
15
16
|
async rollback(actor, signal) {
|
|
16
17
|
const state = this.states.get(actor.context.actorId);
|
|
@@ -23,41 +24,10 @@ class ZLinkTransferredActorRollbackCoordinator {
|
|
|
23
24
|
}
|
|
24
25
|
const actorRef = state.nativeActorRef;
|
|
25
26
|
const node = this.options.nativeActorNode ?? this.options.nativeActorNodeProvider?.();
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
await this.destroyNativeActor(node, actorRef, signal);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
this.schedule(actor, state, node, actorRef);
|
|
33
|
-
throw error;
|
|
34
|
-
}
|
|
35
|
-
this.complete(actor, state);
|
|
36
|
-
}
|
|
37
|
-
schedule(actor, state, node, actorRef) {
|
|
38
|
-
if (this.tasks.has(actor.context.actorId)) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
const task = this.retry(actor, state, node, actorRef).finally(() => this.tasks.delete(actor.context.actorId));
|
|
42
|
-
this.tasks.set(actor.context.actorId, task);
|
|
43
|
-
}
|
|
44
|
-
async retry(actor, state, node, actorRef) {
|
|
45
|
-
const retryDelay = new actor_retry_delay_1.ZLinkActorRetryDelay();
|
|
46
|
-
while (this.states.get(actor.context.actorId) === state &&
|
|
47
|
-
this.options.shutdownSignal?.aborted !== true) {
|
|
48
|
-
if (!(await retryDelay.wait(this.options.shutdownSignal)))
|
|
49
|
-
return;
|
|
50
|
-
try {
|
|
51
|
-
if (node !== undefined && actorRef !== undefined) {
|
|
52
|
-
await this.destroyNativeActor(node, actorRef);
|
|
53
|
-
}
|
|
54
|
-
this.complete(actor, state);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
catch {
|
|
58
|
-
// The tombstone prevents dispatch while the next retry is pending.
|
|
59
|
-
}
|
|
27
|
+
if (node !== undefined && actorRef !== undefined) {
|
|
28
|
+
await this.destroyNativeActor(node, actorRef, signal);
|
|
60
29
|
}
|
|
30
|
+
await this.complete(actor, state);
|
|
61
31
|
}
|
|
62
32
|
async destroyNativeActor(node, actorRef, signal) {
|
|
63
33
|
const completions = this.options.nativeActorCompletionTableProvider?.();
|
|
@@ -78,14 +48,11 @@ class ZLinkTransferredActorRollbackCoordinator {
|
|
|
78
48
|
(0, backend_1.closeMeshCompletion)(completion);
|
|
79
49
|
}
|
|
80
50
|
}
|
|
81
|
-
complete(actor, state) {
|
|
51
|
+
async complete(actor, state) {
|
|
82
52
|
if (this.states.get(actor.context.actorId) !== state) {
|
|
83
53
|
return;
|
|
84
54
|
}
|
|
85
|
-
|
|
86
|
-
state.clearAfterDestroy();
|
|
87
|
-
this.states.delete(actor.context.actorId);
|
|
88
|
-
this.options.metrics?.change('zlink.actor.count', -1);
|
|
55
|
+
await state.getOrStartDestroy((0, actor_lifecycle_snapshot_1.createActorMembership)(actor).actor.nodeRid, () => this.finalize(actor.context.actorId, state));
|
|
89
56
|
}
|
|
90
57
|
}
|
|
91
58
|
exports.ZLinkTransferredActorRollbackCoordinator = ZLinkTransferredActorRollbackCoordinator;
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { ZLinkFrameworkInternalErrorKind } from './framework-errors-internal';
|
|
2
|
+
/** 소비한 배열 prefix가 정리 조건에 도달했는지 판정합니다. */
|
|
3
|
+
export declare function shouldCompactBackingArray(head: number, length: number): boolean;
|
|
2
4
|
export declare class ZLinkRuntimeAdmissionGate {
|
|
3
|
-
|
|
5
|
+
readonly ownerAdmissionOpen: () => boolean;
|
|
4
6
|
private readonly meshes;
|
|
7
|
+
/**
|
|
8
|
+
* Location runtime §5: the host's single new-work decision (local admission deadline and host
|
|
9
|
+
* execution combination). A host without a Location Store has no such block.
|
|
10
|
+
*/
|
|
5
11
|
constructor(ownerAdmissionOpen?: () => boolean);
|
|
6
12
|
get acceptsNewWork(): boolean;
|
|
7
13
|
register(meshName: string): void;
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZLinkRuntimeAdmissionGate = void 0;
|
|
4
|
+
exports.shouldCompactBackingArray = shouldCompactBackingArray;
|
|
4
5
|
const framework_errors_internal_1 = require("./framework-errors-internal");
|
|
6
|
+
const BACKING_ARRAY_COMPACTION_MIN_HEAD = 1024;
|
|
7
|
+
/** 소비한 배열 prefix가 정리 조건에 도달했는지 판정합니다. */
|
|
8
|
+
function shouldCompactBackingArray(head, length) {
|
|
9
|
+
return head >= BACKING_ARRAY_COMPACTION_MIN_HEAD && head * 2 >= length;
|
|
10
|
+
}
|
|
5
11
|
class ZLinkRuntimeAdmissionGate {
|
|
6
12
|
ownerAdmissionOpen;
|
|
7
13
|
meshes = new Map();
|
|
14
|
+
/**
|
|
15
|
+
* Location runtime §5: the host's single new-work decision (local admission deadline and host
|
|
16
|
+
* execution combination). A host without a Location Store has no such block.
|
|
17
|
+
*/
|
|
8
18
|
constructor(ownerAdmissionOpen = () => true) {
|
|
9
19
|
this.ownerAdmissionOpen = ownerAdmissionOpen;
|
|
10
20
|
}
|
|
@@ -161,7 +171,7 @@ function compactWaiters(state) {
|
|
|
161
171
|
state.waiters.length = 0;
|
|
162
172
|
state.waiterHead = 0;
|
|
163
173
|
}
|
|
164
|
-
else if (state.waiterHead
|
|
174
|
+
else if (shouldCompactBackingArray(state.waiterHead, state.waiters.length)) {
|
|
165
175
|
state.waiters.splice(0, state.waiterHead);
|
|
166
176
|
state.waiterHead = 0;
|
|
167
177
|
}
|
|
@@ -9,7 +9,7 @@ export declare function releaseApplicationJobPermitBeforeHandler(): void;
|
|
|
9
9
|
/** True while dispatch already owns the host-wide application job permit. */
|
|
10
10
|
export declare function hasApplicationJobPermit(): boolean;
|
|
11
11
|
/** Re-enters the captured permit scope when a serial executor runs later. */
|
|
12
|
-
export declare function bindApplicationJobPermit<TResult>(callback: () => Promise<TResult> | TResult): () => Promise<TResult> | TResult;
|
|
12
|
+
export declare function bindApplicationJobPermit<TResult, TArgument>(callback: (argument?: TArgument) => Promise<TResult> | TResult): (argument?: TArgument) => Promise<TResult> | TResult;
|
|
13
13
|
/**
|
|
14
14
|
* Transfers the current permit to a detached internal handler turn. The
|
|
15
15
|
* detached owner must release it at handler entry or at a pre-start terminal.
|
|
@@ -41,7 +41,7 @@ function bindApplicationJobPermit(callback) {
|
|
|
41
41
|
const scope = applicationJobPermitScope.getStore();
|
|
42
42
|
if (scope === undefined)
|
|
43
43
|
return callback;
|
|
44
|
-
return () => applicationJobPermitScope.run(scope, callback);
|
|
44
|
+
return (argument) => applicationJobPermitScope.run(scope, callback, argument);
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Transfers the current permit to a detached internal handler turn. The
|