@zlink-systems/framework 0.29.1 → 0.30.1
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/LICENSE +150 -68
- package/dist/.tsbuildinfo +1 -1
- package/dist/contracts/Actors/ZLinkActorClient.d.ts +2 -1
- package/dist/contracts/Channels/Calls.d.ts +2 -1
- package/dist/contracts/Common/ZLinkMessageMetadata.js +11 -5
- package/dist/contracts/Configuration/Builders.d.ts +1 -2
- package/dist/contracts/Configuration/Configs.d.ts +0 -5
- package/dist/contracts/Configuration/RegistrationBuilders.js +6 -4
- package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -6
- package/dist/contracts/Configuration/RegistrationValidators.js +4 -4
- package/dist/contracts/Configuration/index.d.ts +1 -1
- package/dist/contracts/Handlers/Attributes.d.ts +5 -13
- package/dist/contracts/Handlers/Attributes.js +7 -11
- package/dist/contracts/Handlers/JsonContract.d.ts +2 -46
- package/dist/contracts/Handlers/JsonContract.js +4 -153
- package/dist/contracts/Spots/Contracts.d.ts +2 -1
- package/dist/internal.d.ts +1 -0
- package/dist/internal.js +3 -1
- package/dist/nest-integration.d.ts +1 -1
- package/dist/nest-integration.js +2 -1
- package/dist/runtime/actors/actor-client.d.ts +1 -1
- package/dist/runtime/actors/actor-client.js +14 -12
- package/dist/runtime/actors/actor-handoff.d.ts +3 -2
- package/dist/runtime/actors/actor-handoff.js +15 -7
- package/dist/runtime/actors/actor-join-relocation.d.ts +1 -0
- package/dist/runtime/actors/actor-local-native-join.js +9 -12
- package/dist/runtime/actors/actor-remote-wire.js +15 -0
- package/dist/runtime/actors/actor-routed-join-transport.d.ts +6 -2
- package/dist/runtime/actors/actor-routed-json-request.d.ts +2 -0
- package/dist/runtime/actors/index.d.ts +2 -1
- package/dist/runtime/actors/index.js +18 -6
- package/dist/runtime/actors/spot-actor-dispatch.js +2 -2
- package/dist/runtime/admission.d.ts +1 -1
- package/dist/runtime/admission.js +15 -5
- package/dist/runtime/application-jobs/application-ingress-record-owner.d.ts +9 -9
- package/dist/runtime/application-jobs/application-ingress-record-owner.js +45 -23
- package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +5 -2
- package/dist/runtime/application-jobs/application-job-queue-scope.js +41 -21
- package/dist/runtime/application-jobs/contracts.d.ts +15 -2
- package/dist/runtime/backend/contracts/index.d.ts +27 -27
- package/dist/runtime/backend/mesh-completion-table.d.ts +15 -5
- package/dist/runtime/backend/mesh-completion-table.js +160 -50
- package/dist/runtime/backend/mesh-dispatch-pump.d.ts +3 -0
- package/dist/runtime/backend/mesh-dispatch-pump.js +53 -36
- package/dist/runtime/backend/node/node-backend-adapter-factory.js +6 -1
- package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -3
- package/dist/runtime/backend/node/node-backend-adapter-support.js +33 -31
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
- package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +5 -2
- package/dist/runtime/backend/node/node-mesh-backend-adapter.d.ts +1 -9
- package/dist/runtime/backend/node/node-mesh-backend-adapter.js +1 -1
- package/dist/runtime/backend/node/node-raw-binding-port.js +50 -25
- package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +22 -16
- package/dist/runtime/backend/node/node-raw-mesh-backend.js +133 -149
- package/dist/runtime/backend/node/node-socket-backend-adapter.js +15 -10
- package/dist/runtime/backend/raw-binding-port.d.ts +10 -3
- package/dist/runtime/backend/runtime-message.d.ts +1 -0
- package/dist/runtime/backend/runtime-message.js +5 -0
- package/dist/runtime/backend/runtime-values.d.ts +1 -0
- package/dist/runtime/backend/runtime-values.js +2 -1
- package/dist/runtime/channels/channel-clients.d.ts +1 -0
- package/dist/runtime/channels/channel-clients.js +58 -21
- package/dist/runtime/channels/channel-dispatch-pipeline.d.ts +3 -2
- package/dist/runtime/channels/channel-dispatch-pipeline.js +20 -11
- package/dist/runtime/channels/channel-dispatch-services.d.ts +1 -0
- package/dist/runtime/channels/channel-dispatch-services.js +45 -0
- package/dist/runtime/channels/channel-dispatchers.d.ts +1 -1
- package/dist/runtime/channels/channel-dispatchers.js +27 -26
- package/dist/runtime/channels/channel-envelope-inspection.d.ts +1 -2
- package/dist/runtime/channels/channel-envelope-inspection.js +1 -16
- package/dist/runtime/channels/channel-envelope.d.ts +1 -0
- package/dist/runtime/channels/channel-envelope.js +83 -8
- package/dist/runtime/channels/channel-outbound-operations.d.ts +2 -2
- package/dist/runtime/channels/channel-outbound-operations.js +8 -8
- package/dist/runtime/channels/channel-receive-loops.js +3 -3
- package/dist/runtime/channels/channel-runtime-lifecycle.js +2 -1
- package/dist/runtime/channels/channel-runtime-manager.d.ts +6 -6
- package/dist/runtime/channels/channel-runtime-manager.js +12 -12
- package/dist/runtime/channels/channel-socket-registry.d.ts +10 -3
- package/dist/runtime/channels/channel-socket-registry.js +59 -82
- package/dist/runtime/channels/channel-transports.d.ts +18 -15
- package/dist/runtime/channels/channel-transports.js +48 -31
- package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
- package/dist/runtime/channels/local-spot-route-transport.js +2 -1
- package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +2 -2
- package/dist/runtime/channels/router-socket-spot-route-transport.js +4 -4
- package/dist/runtime/channels/source-spot-router.d.ts +2 -2
- package/dist/runtime/channels/source-spot-router.js +4 -4
- package/dist/runtime/channels/spot-node-route-transport.d.ts +2 -2
- package/dist/runtime/channels/spot-node-route-transport.js +4 -4
- package/dist/runtime/channels/spot-route-bridge-transport.d.ts +2 -2
- package/dist/runtime/channels/spot-route-bridge-transport.js +4 -4
- package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +5 -4
- package/dist/runtime/channels/spot-route-dispatch-strategy.js +18 -18
- package/dist/runtime/diagnostics/message-flow.d.ts +1 -0
- package/dist/runtime/diagnostics/message-flow.js +3 -3
- package/dist/runtime/execution/serial-execution-queue.d.ts +1 -0
- package/dist/runtime/execution/serial-execution-queue.js +1 -0
- package/dist/runtime/foundation/actor-join-recovery-codec.js +2 -2
- package/dist/runtime/foundation/durable-service-request.d.ts +14 -0
- package/dist/runtime/foundation/durable-service-request.js +98 -0
- package/dist/runtime/foundation/operation-identity.d.ts +1 -0
- package/dist/runtime/foundation/operation-identity.js +5 -1
- package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +37 -6
- package/dist/runtime/foundation/raw-service-mesh-runtime.js +473 -220
- package/dist/runtime/foundation/service-liveness-registry.d.ts +20 -8
- package/dist/runtime/foundation/service-liveness-registry.js +57 -44
- package/dist/runtime/foundation/service-mailbox.d.ts +3 -0
- package/dist/runtime/foundation/service-mailbox.js +2 -1
- package/dist/runtime/foundation/service-relocation-object-owner.d.ts +1 -0
- package/dist/runtime/foundation/service-relocation-object-owner.js +1 -0
- package/dist/runtime/foundation/service-relocation-runtime.d.ts +2 -0
- package/dist/runtime/foundation/service-relocation-runtime.js +13 -1
- package/dist/runtime/foundation/service-runtime-contracts.d.ts +2 -0
- package/dist/runtime/foundation/service-stateful-runtime.d.ts +10 -9
- package/dist/runtime/foundation/service-stateful-runtime.js +78 -126
- package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +5 -7
- package/dist/runtime/foundation/service-stateful-wire-codec.js +43 -61
- package/dist/runtime/foundation/service-topology-registry.d.ts +16 -4
- package/dist/runtime/foundation/service-topology-registry.js +69 -30
- package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +3 -3
- package/dist/runtime/foundation/service-wire-m6a-codec.js +36 -38
- package/dist/runtime/handlers/handler-instance-scope.d.ts +8 -0
- package/dist/runtime/handlers/handler-instance-scope.js +54 -11
- package/dist/runtime/host/actor-packet-relay.js +7 -7
- package/dist/runtime/host/actor-runtime-options-factory.js +2 -2
- package/dist/runtime/host/application-job-queue.d.ts +28 -9
- package/dist/runtime/host/application-job-queue.js +214 -50
- package/dist/runtime/host/entry-actor-runtime.d.ts +1 -0
- package/dist/runtime/host/entry-actor-runtime.js +4 -1
- package/dist/runtime/host/index.d.ts +7 -1
- package/dist/runtime/host/index.js +154 -126
- package/dist/runtime/host/instance-activation-authority.d.ts +2 -1
- package/dist/runtime/host/instance-activation-authority.js +89 -25
- package/dist/runtime/host/remote-bound-session-relay.js +2 -18
- package/dist/runtime/host/route-mesh-runtime.js +1 -1
- package/dist/runtime/host/service-relocation-control.d.ts +1 -0
- package/dist/runtime/host/service-relocation-control.js +10 -4
- package/dist/runtime/host/service-relocation-host-runtime.d.ts +6 -8
- package/dist/runtime/host/service-relocation-host-runtime.js +215 -243
- package/dist/runtime/host/spot-address-transport.d.ts +1 -0
- package/dist/runtime/host/spot-address-transport.js +28 -14
- package/dist/runtime/host/spot-runtime-options-factory.js +3 -2
- package/dist/runtime/host/user-spot-creation-coordinator.d.ts +1 -0
- package/dist/runtime/host/user-spot-creation-coordinator.js +1 -0
- package/dist/runtime/locations/actor-location-claims.d.ts +2 -2
- package/dist/runtime/locations/actor-location-claims.js +34 -19
- package/dist/runtime/locations/domain-store-contract.d.ts +2 -2
- package/dist/runtime/locations/in-memory-authority-store.d.ts +4 -2
- package/dist/runtime/locations/in-memory-authority-store.js +80 -8
- package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
- package/dist/runtime/locations/in-memory-location-store.js +19 -3
- package/dist/runtime/locations/internal-location-contracts.d.ts +3 -0
- package/dist/runtime/locations/lifecycle.d.ts +1 -2
- package/dist/runtime/locations/lifecycle.js +2 -5
- package/dist/runtime/locations/location-store-repository.d.ts +3 -2
- package/dist/runtime/locations/location-store-repository.js +165 -22
- package/dist/runtime/locations/resolvers.d.ts +2 -1
- package/dist/runtime/locations/resolvers.js +10 -1
- package/dist/runtime/locations/runtime.d.ts +1 -1
- package/dist/runtime/locations/runtime.js +24 -23
- package/dist/runtime/messaging/framework-json-v1.d.ts +4 -6
- package/dist/runtime/messaging/framework-json-v1.js +38 -294
- package/dist/runtime/messaging/packet-name.d.ts +1 -1
- package/dist/runtime/messaging/packet-name.js +8 -24
- package/dist/runtime/messaging/request-result.d.ts +2 -0
- package/dist/runtime/messaging/request-result.js +54 -0
- package/dist/runtime/messaging/submission-result.d.ts +2 -1
- package/dist/runtime/messaging/submission-result.js +7 -4
- package/dist/runtime/protocol/service_wire_codec.generated.d.ts +15 -0
- package/dist/runtime/protocol/service_wire_codec.generated.js +144 -0
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.d.ts +9 -0
- package/dist/runtime/protocol/service_wire_pilot_codec.generated.js +14 -1
- package/dist/runtime/spots/formal-remote-actor-admission-registry.d.ts +9 -2
- package/dist/runtime/spots/formal-remote-actor-admission-registry.js +33 -19
- package/dist/runtime/spots/index.d.ts +7 -3
- package/dist/runtime/spots/index.js +23 -16
- package/dist/runtime/spots/spot-activation.d.ts +3 -1
- package/dist/runtime/spots/spot-activation.js +21 -12
- package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +2 -1
- package/dist/runtime/spots/spot-actor-admission-coordinator.js +11 -10
- package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +4 -1
- package/dist/runtime/spots/spot-actor-packet-dispatch.js +7 -5
- package/dist/runtime/spots/spot-actor-packet-drain.js +2 -0
- package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -0
- package/dist/runtime/spots/spot-entry-activation.js +9 -3
- package/dist/runtime/spots/spot-handler-registry.d.ts +3 -1
- package/dist/runtime/spots/spot-handler-registry.js +18 -8
- package/dist/runtime/spots/spot-node-autoconnect.js +4 -3
- package/dist/runtime/spots/spot-node-runtime-manager.d.ts +2 -1
- package/dist/runtime/spots/spot-node-runtime-manager.js +4 -11
- package/dist/runtime/spots/spot-outbound.d.ts +3 -0
- package/dist/runtime/spots/spot-outbound.js +24 -15
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +1 -0
- package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +1 -1
- package/dist/runtime/spots/spot-routing-internal.d.ts +6 -0
- package/dist/runtime/spots/spot-runtime-ports.d.ts +3 -1
- package/dist/runtime/spots/spot-subscription-dispatch.js +0 -3
- package/dist/runtime/spots/spot-timer.js +1 -0
- package/dist/runtime/streams/stream-session-runtime.d.ts +1 -1
- package/dist/runtime/streams/stream-session-runtime.js +14 -28
- package/package.json +3 -3
- package/src/contracts/Actors/ZLinkActorClient.ts +2 -1
- package/src/contracts/Channels/Calls.ts +2 -1
- package/src/contracts/Common/ZLinkMessageMetadata.ts +13 -8
- package/src/contracts/Configuration/Builders.ts +1 -2
- package/src/contracts/Configuration/Configs.ts +0 -6
- package/src/contracts/Configuration/RegistrationBuilders.ts +8 -12
- package/src/contracts/Configuration/RegistrationTypes.ts +1 -6
- package/src/contracts/Configuration/RegistrationValidators.ts +9 -10
- package/src/contracts/Configuration/index.ts +1 -6
- package/src/contracts/Handlers/Attributes.ts +14 -21
- package/src/contracts/Handlers/JsonContract.ts +8 -216
- package/src/contracts/Spots/Contracts.ts +2 -1
- package/src/internal.ts +1 -0
- package/src/nest-integration.ts +1 -0
- package/src/runtime/actors/actor-client.ts +40 -16
- package/src/runtime/actors/actor-handoff.ts +22 -8
- package/src/runtime/actors/actor-join-relocation.ts +1 -0
- package/src/runtime/actors/actor-local-native-join.ts +17 -26
- package/src/runtime/actors/actor-remote-wire.ts +17 -0
- package/src/runtime/actors/actor-routed-join-transport.ts +14 -4
- package/src/runtime/actors/actor-routed-json-request.ts +10 -2
- package/src/runtime/actors/index.ts +19 -5
- package/src/runtime/actors/spot-actor-dispatch.ts +4 -2
- package/src/runtime/admission.ts +18 -5
- package/src/runtime/application-jobs/application-ingress-record-owner.ts +53 -27
- package/src/runtime/application-jobs/application-job-queue-scope.ts +56 -22
- package/src/runtime/application-jobs/contracts.ts +28 -2
- package/src/runtime/backend/contracts/index.ts +63 -32
- package/src/runtime/backend/mesh-completion-table.ts +175 -59
- package/src/runtime/backend/mesh-dispatch-pump.ts +59 -32
- package/src/runtime/backend/node/node-backend-adapter-factory.ts +12 -5
- package/src/runtime/backend/node/node-backend-adapter-support.ts +42 -31
- package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +12 -2
- package/src/runtime/backend/node/node-mesh-backend-adapter.ts +3 -10
- package/src/runtime/backend/node/node-raw-binding-port.ts +73 -37
- package/src/runtime/backend/node/node-raw-mesh-backend.ts +209 -176
- package/src/runtime/backend/node/node-socket-backend-adapter.ts +32 -13
- package/src/runtime/backend/raw-binding-port.ts +18 -3
- package/src/runtime/backend/runtime-message.ts +6 -0
- package/src/runtime/backend/runtime-values.ts +1 -0
- package/src/runtime/channels/channel-clients.ts +90 -41
- package/src/runtime/channels/channel-dispatch-pipeline.ts +69 -34
- package/src/runtime/channels/channel-dispatch-services.ts +69 -1
- package/src/runtime/channels/channel-dispatchers.ts +29 -27
- package/src/runtime/channels/channel-envelope-inspection.ts +2 -16
- package/src/runtime/channels/channel-envelope.ts +133 -8
- package/src/runtime/channels/channel-outbound-operations.ts +22 -8
- package/src/runtime/channels/channel-receive-loops.ts +3 -3
- package/src/runtime/channels/channel-runtime-lifecycle.ts +7 -1
- package/src/runtime/channels/channel-runtime-manager.ts +29 -12
- package/src/runtime/channels/channel-socket-registry.ts +84 -130
- package/src/runtime/channels/channel-transports.ts +128 -60
- package/src/runtime/channels/local-spot-route-transport.ts +3 -1
- package/src/runtime/channels/router-socket-spot-route-transport.ts +13 -4
- package/src/runtime/channels/source-spot-router.ts +8 -4
- package/src/runtime/channels/spot-node-route-transport.ts +8 -4
- package/src/runtime/channels/spot-route-bridge-transport.ts +6 -4
- package/src/runtime/channels/spot-route-dispatch-strategy.ts +47 -18
- package/src/runtime/diagnostics/message-flow.ts +1 -1
- package/src/runtime/execution/serial-execution-queue.ts +2 -0
- package/src/runtime/foundation/actor-join-recovery-codec.ts +2 -2
- package/src/runtime/foundation/durable-service-request.ts +137 -0
- package/src/runtime/foundation/operation-identity.ts +5 -1
- package/src/runtime/foundation/raw-service-mesh-runtime.ts +642 -253
- package/src/runtime/foundation/service-liveness-registry.ts +68 -59
- package/src/runtime/foundation/service-mailbox.ts +7 -1
- package/src/runtime/foundation/service-relocation-object-owner.ts +2 -0
- package/src/runtime/foundation/service-relocation-runtime.ts +18 -1
- package/src/runtime/foundation/service-runtime-contracts.ts +7 -1
- package/src/runtime/foundation/service-stateful-runtime.ts +128 -160
- package/src/runtime/foundation/service-stateful-wire-codec.ts +55 -84
- package/src/runtime/foundation/service-topology-registry.ts +103 -42
- package/src/runtime/foundation/service-wire-m6a-codec.ts +57 -38
- package/src/runtime/handlers/handler-instance-scope.ts +67 -16
- package/src/runtime/host/actor-packet-relay.ts +7 -0
- package/src/runtime/host/actor-runtime-options-factory.ts +14 -2
- package/src/runtime/host/application-job-queue.ts +249 -48
- package/src/runtime/host/entry-actor-runtime.ts +5 -0
- package/src/runtime/host/index.ts +224 -160
- package/src/runtime/host/instance-activation-authority.ts +132 -27
- package/src/runtime/host/remote-bound-session-relay.ts +2 -23
- package/src/runtime/host/route-mesh-runtime.ts +1 -1
- package/src/runtime/host/service-relocation-control.ts +11 -5
- package/src/runtime/host/service-relocation-host-runtime.ts +317 -291
- package/src/runtime/host/spot-address-transport.ts +49 -24
- package/src/runtime/host/spot-runtime-options-factory.ts +4 -0
- package/src/runtime/host/user-spot-creation-coordinator.ts +8 -0
- package/src/runtime/locations/actor-location-claims.ts +52 -30
- package/src/runtime/locations/domain-store-contract.ts +6 -2
- package/src/runtime/locations/in-memory-authority-store.ts +113 -9
- package/src/runtime/locations/in-memory-location-store.ts +25 -3
- package/src/runtime/locations/internal-location-contracts.ts +4 -0
- package/src/runtime/locations/lifecycle.ts +8 -26
- package/src/runtime/locations/location-store-repository.ts +220 -15
- package/src/runtime/locations/resolvers.ts +25 -2
- package/src/runtime/locations/runtime.ts +28 -24
- package/src/runtime/messaging/framework-json-v1.ts +5 -325
- package/src/runtime/messaging/packet-name.ts +5 -25
- package/src/runtime/messaging/request-result.ts +58 -0
- package/src/runtime/messaging/submission-result.ts +7 -3
- package/src/runtime/protocol/service_wire_codec.generated.ts +131 -1
- package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +4 -4
- package/src/runtime/spots/formal-remote-actor-admission-registry.ts +45 -23
- package/src/runtime/spots/index.ts +30 -2
- package/src/runtime/spots/spot-activation.ts +33 -10
- package/src/runtime/spots/spot-actor-admission-coordinator.ts +13 -0
- package/src/runtime/spots/spot-actor-packet-dispatch.ts +10 -0
- package/src/runtime/spots/spot-actor-packet-drain.ts +2 -0
- package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +1 -0
- package/src/runtime/spots/spot-entry-activation.ts +12 -2
- package/src/runtime/spots/spot-handler-registry.ts +41 -8
- package/src/runtime/spots/spot-node-autoconnect.ts +6 -2
- package/src/runtime/spots/spot-node-runtime-manager.ts +7 -12
- package/src/runtime/spots/spot-outbound.ts +36 -16
- package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +2 -1
- package/src/runtime/spots/spot-routing-internal.ts +14 -0
- package/src/runtime/spots/spot-runtime-ports.ts +3 -0
- package/src/runtime/spots/spot-subscription-dispatch.ts +0 -3
- package/src/runtime/spots/spot-timer.ts +5 -1
- package/src/runtime/streams/stream-session-runtime.ts +13 -30
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export interface ServiceProbe {
|
|
2
2
|
readonly nodeRoutingId: string;
|
|
3
|
-
readonly connectionId: string;
|
|
3
|
+
readonly connectionId: string | bigint;
|
|
4
4
|
readonly probeId: bigint;
|
|
5
5
|
}
|
|
6
6
|
export interface ServiceLivenessTick {
|
|
@@ -9,6 +9,19 @@ export interface ServiceLivenessTick {
|
|
|
9
9
|
}
|
|
10
10
|
export declare const DEFAULT_SERVICE_PROBE_INTERVAL_MS = 5000;
|
|
11
11
|
export declare const DEFAULT_SERVICE_PEER_TIMEOUT_MS = 15000;
|
|
12
|
+
export declare class ServiceLivenessConnection {
|
|
13
|
+
readonly connectionId: string | bigint;
|
|
14
|
+
private readonly probeIntervalMs;
|
|
15
|
+
private readonly peerTimeoutMs;
|
|
16
|
+
deadlineMs: number;
|
|
17
|
+
nextProbeMs: number;
|
|
18
|
+
outstandingProbe?: bigint;
|
|
19
|
+
constructor(connectionId: string | bigint, nowMs: number, probeIntervalMs?: number, peerTimeoutMs?: number);
|
|
20
|
+
readonly recordReceived: (nowMs?: number) => void;
|
|
21
|
+
isExpired(nowMs: number): boolean;
|
|
22
|
+
tryGetProbe(nowMs: number, allocateProbeId: () => bigint): bigint | undefined;
|
|
23
|
+
acknowledge(probeId: bigint, nowMs: number): boolean;
|
|
24
|
+
}
|
|
12
25
|
/** Uses monotonic milliseconds and never treats application traffic as a probe ACK. */
|
|
13
26
|
export declare class ServiceLivenessRegistry {
|
|
14
27
|
private readonly probeIntervalMs;
|
|
@@ -16,13 +29,12 @@ export declare class ServiceLivenessRegistry {
|
|
|
16
29
|
private readonly peers;
|
|
17
30
|
private nextProbeId;
|
|
18
31
|
constructor(probeIntervalMs?: number, peerTimeoutMs?: number);
|
|
19
|
-
admit(nodeRoutingId: string, connectionId: string, nowMs: number):
|
|
20
|
-
|
|
21
|
-
disconnect(nodeRoutingId: string, connectionId: string): boolean;
|
|
22
|
-
acknowledge(nodeRoutingId: string, connectionId: string, probeId: bigint, nowMs: number): boolean;
|
|
23
|
-
acknowledgeProbe(nodeRoutingId: string, connectionId: string, probeId: bigint): ServiceProbe | undefined;
|
|
32
|
+
admit(nodeRoutingId: string, connectionId: string | bigint, nowMs: number): ServiceLivenessConnection;
|
|
33
|
+
recordReceived(connection: ServiceLivenessConnection, nowMs: number): void;
|
|
34
|
+
disconnect(nodeRoutingId: string, connectionId: string | bigint): boolean;
|
|
35
|
+
acknowledge(nodeRoutingId: string, connectionId: string | bigint, probeId: bigint, nowMs: number): boolean;
|
|
36
|
+
acknowledgeProbe(nodeRoutingId: string, connectionId: string | bigint, probeId: bigint): ServiceProbe | undefined;
|
|
24
37
|
tick(nowMs: number): ServiceLivenessTick;
|
|
25
38
|
get size(): number;
|
|
26
|
-
|
|
27
|
-
private allocateProbeId;
|
|
39
|
+
private readonly allocateProbeId;
|
|
28
40
|
}
|
|
@@ -1,9 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ServiceLivenessRegistry = exports.DEFAULT_SERVICE_PEER_TIMEOUT_MS = exports.DEFAULT_SERVICE_PROBE_INTERVAL_MS = void 0;
|
|
3
|
+
exports.ServiceLivenessRegistry = exports.ServiceLivenessConnection = exports.DEFAULT_SERVICE_PEER_TIMEOUT_MS = exports.DEFAULT_SERVICE_PROBE_INTERVAL_MS = void 0;
|
|
4
4
|
const stream_wire_1 = require("@zlink-systems/stream-wire");
|
|
5
5
|
exports.DEFAULT_SERVICE_PROBE_INTERVAL_MS = 5_000;
|
|
6
6
|
exports.DEFAULT_SERVICE_PEER_TIMEOUT_MS = 15_000;
|
|
7
|
+
class ServiceLivenessConnection {
|
|
8
|
+
connectionId;
|
|
9
|
+
probeIntervalMs;
|
|
10
|
+
peerTimeoutMs;
|
|
11
|
+
deadlineMs;
|
|
12
|
+
nextProbeMs;
|
|
13
|
+
outstandingProbe;
|
|
14
|
+
constructor(connectionId, nowMs, probeIntervalMs = exports.DEFAULT_SERVICE_PROBE_INTERVAL_MS, peerTimeoutMs = exports.DEFAULT_SERVICE_PEER_TIMEOUT_MS) {
|
|
15
|
+
this.connectionId = connectionId;
|
|
16
|
+
this.probeIntervalMs = probeIntervalMs;
|
|
17
|
+
this.peerTimeoutMs = peerTimeoutMs;
|
|
18
|
+
this.deadlineMs = nowMs + peerTimeoutMs;
|
|
19
|
+
this.nextProbeMs = nowMs;
|
|
20
|
+
}
|
|
21
|
+
recordReceived = (nowMs = performance.now()) => {
|
|
22
|
+
this.deadlineMs = Math.max(this.deadlineMs, nowMs + this.peerTimeoutMs);
|
|
23
|
+
};
|
|
24
|
+
isExpired(nowMs) {
|
|
25
|
+
return nowMs >= this.deadlineMs;
|
|
26
|
+
}
|
|
27
|
+
tryGetProbe(nowMs, allocateProbeId) {
|
|
28
|
+
if (nowMs < this.nextProbeMs)
|
|
29
|
+
return undefined;
|
|
30
|
+
this.outstandingProbe ??= allocateProbeId();
|
|
31
|
+
do {
|
|
32
|
+
this.nextProbeMs += this.probeIntervalMs;
|
|
33
|
+
} while (this.nextProbeMs <= nowMs);
|
|
34
|
+
return this.outstandingProbe;
|
|
35
|
+
}
|
|
36
|
+
acknowledge(probeId, nowMs) {
|
|
37
|
+
this.recordReceived(nowMs);
|
|
38
|
+
if (this.outstandingProbe !== probeId)
|
|
39
|
+
return false;
|
|
40
|
+
this.outstandingProbe = undefined;
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.ServiceLivenessConnection = ServiceLivenessConnection;
|
|
7
45
|
/** Uses monotonic milliseconds and never treats application traffic as a probe ACK. */
|
|
8
46
|
class ServiceLivenessRegistry {
|
|
9
47
|
probeIntervalMs;
|
|
@@ -22,26 +60,19 @@ class ServiceLivenessRegistry {
|
|
|
22
60
|
}
|
|
23
61
|
admit(nodeRoutingId, connectionId, nowMs) {
|
|
24
62
|
requireIdentity(nodeRoutingId, 'nodeRoutingId');
|
|
25
|
-
|
|
63
|
+
if (typeof connectionId === 'string')
|
|
64
|
+
requireIdentity(connectionId, 'connectionId');
|
|
65
|
+
else if (connectionId === 0n)
|
|
66
|
+
throw new TypeError('connectionId must be nonzero.');
|
|
26
67
|
const current = this.peers.get(nodeRoutingId);
|
|
27
68
|
if (current?.connectionId === connectionId)
|
|
28
|
-
return;
|
|
29
|
-
this.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
nextProbeMs: nowMs + this.probeIntervalMs,
|
|
33
|
-
ready: false
|
|
34
|
-
});
|
|
69
|
+
return current;
|
|
70
|
+
const admitted = new ServiceLivenessConnection(connectionId, nowMs, this.probeIntervalMs, this.peerTimeoutMs);
|
|
71
|
+
this.peers.set(nodeRoutingId, admitted);
|
|
72
|
+
return admitted;
|
|
35
73
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (current === undefined ||
|
|
39
|
-
current.connectionId !== connectionId ||
|
|
40
|
-
current.ready ||
|
|
41
|
-
current.outstandingProbe !== undefined)
|
|
42
|
-
return false;
|
|
43
|
-
current.nextProbeMs = Math.min(current.nextProbeMs, nowMs);
|
|
44
|
-
return true;
|
|
74
|
+
recordReceived(connection, nowMs) {
|
|
75
|
+
connection.recordReceived(nowMs);
|
|
45
76
|
}
|
|
46
77
|
disconnect(nodeRoutingId, connectionId) {
|
|
47
78
|
const current = this.peers.get(nodeRoutingId);
|
|
@@ -52,15 +83,9 @@ class ServiceLivenessRegistry {
|
|
|
52
83
|
}
|
|
53
84
|
acknowledge(nodeRoutingId, connectionId, probeId, nowMs) {
|
|
54
85
|
const current = this.peers.get(nodeRoutingId);
|
|
55
|
-
if (current === undefined ||
|
|
56
|
-
current.connectionId !== connectionId ||
|
|
57
|
-
current.outstandingProbe !== probeId) {
|
|
86
|
+
if (current === undefined || current.connectionId !== connectionId)
|
|
58
87
|
return false;
|
|
59
|
-
|
|
60
|
-
current.outstandingProbe = undefined;
|
|
61
|
-
current.deadlineMs = nowMs + this.peerTimeoutMs;
|
|
62
|
-
current.ready = true;
|
|
63
|
-
return true;
|
|
88
|
+
return current.acknowledge(probeId, nowMs);
|
|
64
89
|
}
|
|
65
90
|
acknowledgeProbe(nodeRoutingId, connectionId, probeId) {
|
|
66
91
|
const current = this.peers.get(nodeRoutingId);
|
|
@@ -73,22 +98,14 @@ class ServiceLivenessRegistry {
|
|
|
73
98
|
const probes = [];
|
|
74
99
|
const timedOutNodes = [];
|
|
75
100
|
for (const [nodeRoutingId, peer] of this.peers) {
|
|
76
|
-
if (peer.
|
|
101
|
+
if (peer.isExpired(nowMs)) {
|
|
77
102
|
timedOutNodes.push(nodeRoutingId);
|
|
78
103
|
this.peers.delete(nodeRoutingId);
|
|
79
104
|
continue;
|
|
80
105
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
probes.push({
|
|
85
|
-
nodeRoutingId,
|
|
86
|
-
connectionId: peer.connectionId,
|
|
87
|
-
probeId: peer.outstandingProbe
|
|
88
|
-
});
|
|
89
|
-
do {
|
|
90
|
-
peer.nextProbeMs += this.probeIntervalMs;
|
|
91
|
-
} while (peer.nextProbeMs <= nowMs);
|
|
106
|
+
const probeId = peer.tryGetProbe(nowMs, this.allocateProbeId);
|
|
107
|
+
if (probeId !== undefined)
|
|
108
|
+
probes.push({ nodeRoutingId, connectionId: peer.connectionId, probeId });
|
|
92
109
|
}
|
|
93
110
|
timedOutNodes.sort();
|
|
94
111
|
return { probes, timedOutNodes };
|
|
@@ -96,16 +113,12 @@ class ServiceLivenessRegistry {
|
|
|
96
113
|
get size() {
|
|
97
114
|
return this.peers.size;
|
|
98
115
|
}
|
|
99
|
-
|
|
100
|
-
const current = this.peers.get(nodeRoutingId);
|
|
101
|
-
return current?.connectionId === connectionId && current.ready;
|
|
102
|
-
}
|
|
103
|
-
allocateProbeId() {
|
|
116
|
+
allocateProbeId = () => {
|
|
104
117
|
const result = this.nextProbeId++;
|
|
105
118
|
if (this.nextProbeId > stream_wire_1.UINT64_MAX)
|
|
106
119
|
this.nextProbeId = 1n;
|
|
107
120
|
return result;
|
|
108
|
-
}
|
|
121
|
+
};
|
|
109
122
|
}
|
|
110
123
|
exports.ServiceLivenessRegistry = ServiceLivenessRegistry;
|
|
111
124
|
function requireIdentity(value, field) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ApplicationJobRecordLease } from '../application-jobs/application-ingress-record-owner';
|
|
2
|
+
import type { ReceiveRecord } from './service-runtime-contracts';
|
|
2
3
|
export type ServiceMailboxDomain = 'application' | 'infrastructure';
|
|
3
4
|
export interface ServiceMailboxRecord {
|
|
4
5
|
readonly owner: string;
|
|
@@ -17,6 +18,8 @@ export interface ServiceMailboxRecord {
|
|
|
17
18
|
readonly stateful?: unknown;
|
|
18
19
|
/** Host queue permit plus its ordinary Framework-owned ingress record. */
|
|
19
20
|
readonly applicationJob?: ApplicationJobRecordLease;
|
|
21
|
+
/** Unregistered raw-pull terminal, retained by the existing mailbox owner. */
|
|
22
|
+
readonly completion?: ReceiveRecord;
|
|
20
23
|
}
|
|
21
24
|
export interface ServiceMailboxClaim {
|
|
22
25
|
readonly owner: string;
|
|
@@ -24,7 +24,8 @@ class ServiceMailbox {
|
|
|
24
24
|
record.parts = [];
|
|
25
25
|
}
|
|
26
26
|
tryEnqueue(record) {
|
|
27
|
-
if (record.owner.length === 0 ||
|
|
27
|
+
if (record.owner.length === 0 ||
|
|
28
|
+
(record.parts.length === 0 && record.completion === undefined)) {
|
|
28
29
|
throw new TypeError('Mailbox records require an owner and retained payload.');
|
|
29
30
|
}
|
|
30
31
|
const target = this.domain(record.domain);
|
|
@@ -3,6 +3,7 @@ import type { ServiceRelocationRestoreOwner, ServiceRelocationStaging } from './
|
|
|
3
3
|
import type { ServiceRelocationEnvelope, ServiceRelocationMembership, ServiceRelocationParticipant, ServiceRelocationQueuedMessage, ServiceRelocationTimer } from './service-relocation-runtime';
|
|
4
4
|
export interface ServiceRelocationSealedWork {
|
|
5
5
|
readonly boundSessionState: Uint8Array;
|
|
6
|
+
readonly sessionBinding?: ServiceRelocationParticipant['sessionBinding'];
|
|
6
7
|
readonly queuedMessages: readonly ServiceRelocationQueuedMessage[];
|
|
7
8
|
readonly timers: readonly ServiceRelocationTimer[];
|
|
8
9
|
}
|
|
@@ -102,6 +102,7 @@ class ServiceRelocationObjectCaptureOwner {
|
|
|
102
102
|
authorityOwnerGeneration: unit.authorityOwnerGeneration,
|
|
103
103
|
applicationState: Buffer.from(await unit.captureApplicationState(signal)),
|
|
104
104
|
boundSessionState: Buffer.from(work.boundSessionState),
|
|
105
|
+
...(work.sessionBinding === undefined ? {} : { sessionBinding: work.sessionBinding }),
|
|
105
106
|
queuedMessages: work.queuedMessages.map((message) => ({
|
|
106
107
|
sequence: message.sequence,
|
|
107
108
|
payload: Buffer.from(message.payload)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ZLinkPlacementObjectKind } from '../locations/internal-location-contracts';
|
|
2
|
+
import { type RelocationEnvelopeV1 as GeneratedRelocationEnvelopeV1 } from '../protocol/service_wire_pilot_codec.generated';
|
|
2
3
|
export interface ServiceRelocationParticipant {
|
|
3
4
|
/** Wire-local participant ordinal; identity is projected from Location Store. */
|
|
4
5
|
readonly participantId?: bigint;
|
|
@@ -17,6 +18,7 @@ export interface ServiceRelocationParticipant {
|
|
|
17
18
|
readonly applicationStatePresent?: boolean;
|
|
18
19
|
readonly applicationState: Uint8Array;
|
|
19
20
|
readonly boundSessionState: Uint8Array;
|
|
21
|
+
readonly sessionBinding?: GeneratedRelocationEnvelopeV1['sessionBindings'][number];
|
|
20
22
|
readonly queuedMessages: readonly ServiceRelocationQueuedMessage[];
|
|
21
23
|
readonly timers: readonly ServiceRelocationTimer[];
|
|
22
24
|
}
|
|
@@ -480,6 +480,9 @@ function encodeServiceRelocationEnvelope(envelope, applicationVersion) {
|
|
|
480
480
|
lastCompletedScheduledIndex: nonNegativeBigInt(timer.lastScheduledIndex, 'timer scheduled index'),
|
|
481
481
|
nextScheduledAtUnixMilliseconds: nonNegativeUnixMilliseconds(timer.dueAtUnixMs, 'timer due time')
|
|
482
482
|
})),
|
|
483
|
+
sessionBindings: participants.flatMap((participant, index) => participant.sessionBinding === undefined
|
|
484
|
+
? []
|
|
485
|
+
: [{ ...participant.sessionBinding, participantId: BigInt(index + 1) }]),
|
|
483
486
|
pendingTimerTicks: pending.map((value) => ({
|
|
484
487
|
participantId: value.participantId,
|
|
485
488
|
order: value.order,
|
|
@@ -510,11 +513,20 @@ function decodeServiceRelocationEnvelope(payload, aggregateGeneration) {
|
|
|
510
513
|
if (aggregateId === undefined)
|
|
511
514
|
throw new TypeError('Invalid relocation identity.');
|
|
512
515
|
positiveBigInt(aggregateGeneration, 'aggregate generation');
|
|
516
|
+
const bindings = new Map(generated.sessionBindings.map((binding) => [binding.participantId, binding]));
|
|
517
|
+
for (const id of bindings.keys()) {
|
|
518
|
+
if (id > BigInt(generated.applicationStates.length))
|
|
519
|
+
throw new TypeError('Session binding participant is outside its inventory.');
|
|
520
|
+
}
|
|
513
521
|
const participants = generated.applicationStates.map((state, index) => {
|
|
514
522
|
if (state.participantId !== BigInt(index + 1)) {
|
|
515
523
|
throw new TypeError('Application state participant order is invalid.');
|
|
516
524
|
}
|
|
517
|
-
|
|
525
|
+
const binding = bindings.get(state.participantId);
|
|
526
|
+
return {
|
|
527
|
+
...wireParticipant(state.participantId, state.hasState, Buffer.from(state.payload)),
|
|
528
|
+
...(binding === undefined ? {} : { sessionBinding: binding })
|
|
529
|
+
};
|
|
518
530
|
});
|
|
519
531
|
const byId = new Map(participants.map((value) => [value.participantId, value]));
|
|
520
532
|
for (const work of generated.savedWork) {
|
|
@@ -343,6 +343,7 @@ export interface ServiceSpot {
|
|
|
343
343
|
flags?: number;
|
|
344
344
|
timeoutMs?: number;
|
|
345
345
|
applicationMetadata?: Buffer;
|
|
346
|
+
onAdmitted?: () => void;
|
|
346
347
|
}): MeshOperationId;
|
|
347
348
|
sendToSpot(targetNodeRid: unknown, targetSpotId: unknown, targetSpotGeneration: bigint, parts: MessageLike | readonly MessageLike[], options?: {
|
|
348
349
|
flags?: number;
|
|
@@ -354,6 +355,7 @@ export interface ServiceSpot {
|
|
|
354
355
|
timeoutMs?: number;
|
|
355
356
|
applicationMetadata?: Buffer;
|
|
356
357
|
routeFence?: ServiceDirectSpotRouteFence;
|
|
358
|
+
onAdmitted?: () => void;
|
|
357
359
|
entrySpot?: boolean;
|
|
358
360
|
}): MeshOperationId;
|
|
359
361
|
publish(channelName: string, topic: string, parts: MessageLike | readonly MessageLike[], options?: {
|
|
@@ -5,7 +5,7 @@ import type { ServiceInstanceActivationRecoveryEnvelope } from './service-instan
|
|
|
5
5
|
import type { ServiceMailboxRecord } from './service-mailbox';
|
|
6
6
|
import { type ReceiveKindData, type ServiceStreamSessionBinding, type StreamSessionActorAuthorityFence } from './service-runtime-contracts';
|
|
7
7
|
import { ServiceStatefulRegistry, type ServiceActorRef, type ServiceActorState, type ServiceSessionBinding, type ServiceSpotRef, type ServiceSpotState } from './service-stateful-registry';
|
|
8
|
-
import { type ServiceActorCreateRecord, type ServiceActorRouteFence, type ServiceDirectSpotRouteFence, type ServiceInstanceActivationTarget, type ServiceInstanceRouteFence, type ServiceRetiredBoundSessionRouteFence, type ServiceStatefulReplyTail, type ServiceStatefulWireRecord, type ServiceUserSpotCloseRecord, type ServiceUserSpotCreateRecord } from './service-stateful-wire-codec';
|
|
8
|
+
import { type ServiceActorCreateRecord, type ServiceActorRouteFence, type ServiceDirectSpotRouteFence, type ServiceInstanceActivationTarget, type ServiceInstanceColdActivationTarget, type ServiceInstanceRouteFence, type ServiceRetiredBoundSessionRouteFence, type ServiceStatefulReplyTail, type ServiceStatefulWireRecord, type ServiceUserSpotCloseRecord, type ServiceUserSpotCreateRecord } from './service-stateful-wire-codec';
|
|
9
9
|
import { type ServiceApplicationPayload } from './service-wire-m6a-codec';
|
|
10
10
|
export interface ServiceSpotMessageFollowSeal {
|
|
11
11
|
readonly key: string;
|
|
@@ -148,7 +148,7 @@ export interface ServiceInstanceActivationAuthority {
|
|
|
148
148
|
* operation completes; the binding callback itself never blocks.
|
|
149
149
|
*/
|
|
150
150
|
export interface ServiceAsyncInstanceActivationAuthority {
|
|
151
|
-
read(target: ServiceInstanceActivationTarget): Promise<ServiceInstanceAuthorityRead>;
|
|
151
|
+
read(target: ServiceInstanceActivationTarget, instanceIntent?: true, activation?: ServiceInstanceActivationRecoveryEnvelope, acceptsLocal?: (route: ServiceInstanceRouteFence) => boolean): Promise<ServiceInstanceAuthorityRead>;
|
|
152
152
|
reserve(activation: Omit<ServiceInstanceActivationRecoveryEnvelope, 'targetMeshName'>, signal?: AbortSignal): Promise<ServiceInstanceAuthorityReserve>;
|
|
153
153
|
resume(target: ServiceInstanceActivationTarget, pending: ServicePendingInstanceActivation): Promise<ServiceInstanceActivationReservation>;
|
|
154
154
|
commit(target: ServiceInstanceActivationTarget, reservation: ServiceInstanceActivationReservation, spot: ServiceSpotState, deadlineUnixMs?: bigint): Promise<{
|
|
@@ -270,7 +270,7 @@ export declare class ServiceStatefulRuntime {
|
|
|
270
270
|
clearSubscriptions(spotId: string): void;
|
|
271
271
|
publishLogicalMulticast(channelName: string, topic: string, payload: ServiceApplicationPayload, sourceSpotId?: string): Promise<void>;
|
|
272
272
|
sendToSpot(sourceSpotId: string, requested: ServiceDirectSpotRouteFence, payload: ServiceApplicationPayload): Promise<number>;
|
|
273
|
-
requestToSpot(sourceSpotId: string, requested: ServiceDirectSpotRouteFence, payload: ServiceApplicationPayload, timeoutMs: number): ServiceStatefulPendingOperation;
|
|
273
|
+
requestToSpot(sourceSpotId: string, requested: ServiceDirectSpotRouteFence, payload: ServiceApplicationPayload, timeoutMs: number, onAdmitted?: () => void): ServiceStatefulPendingOperation;
|
|
274
274
|
sendToActor(target: ServiceActorRef, _targetNodeGeneration: bigint, _authorityOwnerGeneration: bigint, payload: ServiceApplicationPayload, sourceActor?: ServiceActorRef, boundSession?: {
|
|
275
275
|
readonly sessionRid: string;
|
|
276
276
|
readonly bindingGeneration: bigint;
|
|
@@ -278,13 +278,13 @@ export declare class ServiceStatefulRuntime {
|
|
|
278
278
|
requestToActor(target: ServiceActorRef, _targetNodeGeneration: bigint, _authorityOwnerGeneration: bigint, payload: ServiceApplicationPayload, timeoutMs: number, sourceActor?: ServiceActorRef, boundSession?: {
|
|
279
279
|
readonly sessionRid: string;
|
|
280
280
|
readonly bindingGeneration: bigint;
|
|
281
|
-
}): ServiceStatefulPendingOperation;
|
|
281
|
+
}, onAdmitted?: () => void): ServiceStatefulPendingOperation;
|
|
282
282
|
sendToInstanceSpot(route: ServiceInstanceRouteFence, payload: ServiceApplicationPayload, sourceSpotId?: string, metadataFrame?: Uint8Array, instanceIntent?: boolean): Promise<number>;
|
|
283
|
-
sendToMissingInstanceSpot(target:
|
|
284
|
-
sendToMissingInstanceSpotFrame(target:
|
|
285
|
-
requestToInstanceSpot(route: ServiceInstanceRouteFence, payload: ServiceApplicationPayload, timeoutMs: number, sourceSpotId?: string, metadataFrame?: Uint8Array, instanceIntent?: boolean): ServiceStatefulPendingOperation;
|
|
286
|
-
requestToMissingInstanceSpot(target:
|
|
287
|
-
requestToMissingInstanceSpotFrame(target:
|
|
283
|
+
sendToMissingInstanceSpot(target: ServiceInstanceColdActivationTarget, payload: ServiceApplicationPayload, deadlineUnixMs: bigint, sourceSpotId?: string, metadataFrame?: Uint8Array): Promise<number>;
|
|
284
|
+
sendToMissingInstanceSpotFrame(target: ServiceInstanceColdActivationTarget, payloadFrame: Buffer, deadlineUnixMs: bigint, sourceSpotId?: string, metadataFrame?: Uint8Array): Promise<number>;
|
|
285
|
+
requestToInstanceSpot(route: ServiceInstanceRouteFence, payload: ServiceApplicationPayload, timeoutMs: number, sourceSpotId?: string, metadataFrame?: Uint8Array, instanceIntent?: boolean, onAdmitted?: () => void): ServiceStatefulPendingOperation;
|
|
286
|
+
requestToMissingInstanceSpot(target: ServiceInstanceColdActivationTarget, payload: ServiceApplicationPayload, timeoutMs: number, sourceSpotId?: string, metadataFrame?: Uint8Array): ServiceStatefulPendingOperation;
|
|
287
|
+
requestToMissingInstanceSpotFrame(target: ServiceInstanceColdActivationTarget, payloadFrame: Buffer, deadlineUnixMs: bigint, sourceSpotId?: string, metadataFrame?: Uint8Array, onAdmitted?: () => void): ServiceStatefulPendingOperation;
|
|
288
288
|
lookupRemoteActor(targetNodeRid: string, actorId: string, timeoutMs: number): ServiceStatefulPendingOperation;
|
|
289
289
|
destroyActor(actor: ServiceActorRef, timeoutMs: number): ServiceStatefulPendingOperation;
|
|
290
290
|
joinActor(actor: ServiceActorRef, targetNodeRid: string, targetSpot: ServiceSpotRef, targetSpotGeneration: bigint, payload: ServiceApplicationPayload | undefined, timeoutMs: number): ServiceStatefulPendingOperation;
|
|
@@ -324,6 +324,7 @@ export declare class ServiceStatefulRuntime {
|
|
|
324
324
|
private requireReadyInstanceApplicationRoute;
|
|
325
325
|
private validateInstanceIngress;
|
|
326
326
|
private activateMissingInstance;
|
|
327
|
+
private localReadyInstance;
|
|
327
328
|
private activateMissingInstanceAsync;
|
|
328
329
|
private runMissingInstanceActivation;
|
|
329
330
|
private acceptsLocalMissingInstancePlacement;
|