@zlink-systems/framework 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/Actors/ZLinkActorClient.d.ts +1 -1
  3. package/dist/contracts/Channels/Calls.d.ts +1 -1
  4. package/dist/contracts/Common/CoreTypes.d.ts +6 -0
  5. package/dist/contracts/Common/CoreTypes.js +7 -0
  6. package/dist/contracts/Common/index.d.ts +1 -1
  7. package/dist/contracts/Common/index.js +0 -1
  8. package/dist/contracts/Configuration/Builders.d.ts +0 -1
  9. package/dist/contracts/Configuration/Configs.d.ts +0 -1
  10. package/dist/contracts/Configuration/InternalDefaults.d.ts +8 -0
  11. package/dist/contracts/Configuration/InternalDefaults.js +9 -1
  12. package/dist/contracts/Configuration/Registration.d.ts +13 -2
  13. package/dist/contracts/Configuration/Registration.js +58 -36
  14. package/dist/contracts/Configuration/RegistrationBuilderPolicy.d.ts +13 -1
  15. package/dist/contracts/Configuration/RegistrationBuilderPolicy.js +38 -1
  16. package/dist/contracts/Configuration/RegistrationBuilders.d.ts +2 -3
  17. package/dist/contracts/Configuration/RegistrationBuilders.js +27 -32
  18. package/dist/contracts/Configuration/RegistrationTypes.d.ts +1 -5
  19. package/dist/contracts/Configuration/RegistrationValidators.js +15 -14
  20. package/dist/contracts/Configuration/TimerRegistrationValidator.js +3 -2
  21. package/dist/contracts/Dispatch/ZLinkDispatchOptions.d.ts +1 -1
  22. package/dist/contracts/Handlers/JsonContract.js +10 -4
  23. package/dist/contracts/Locations/Authority.d.ts +1 -1
  24. package/dist/contracts/Locations/Authority.js +3 -2
  25. package/dist/contracts/Locations/Options.js +1 -1
  26. package/dist/contracts/Locations/Stores.d.ts +12 -0
  27. package/dist/contracts/Locations/Stores.js +9 -0
  28. package/dist/contracts/Spots/Contracts.d.ts +2 -2
  29. package/dist/contracts/Streams/BoundSessionContracts.d.ts +1 -1
  30. package/dist/contracts/Streams/IZLinkSession.d.ts +2 -3
  31. package/dist/contracts/Streams/IZLinkSessionActor.d.ts +2 -2
  32. package/dist/internal.d.ts +4 -0
  33. package/dist/internal.js +15 -1
  34. package/dist/nest-integration.d.ts +4 -2
  35. package/dist/nest-integration.js +14 -4
  36. package/dist/runtime/abort.d.ts +1 -0
  37. package/dist/runtime/abort.js +8 -5
  38. package/dist/runtime/activation-admission.d.ts +1 -2
  39. package/dist/runtime/activation-admission.js +2 -6
  40. package/dist/runtime/actors/actor-authority-payload-codec.d.ts +1 -2
  41. package/dist/runtime/actors/actor-authority-payload-codec.js +34 -18
  42. package/dist/runtime/actors/actor-client.d.ts +2 -2
  43. package/dist/runtime/actors/actor-client.js +49 -153
  44. package/dist/runtime/actors/actor-context.d.ts +3 -5
  45. package/dist/runtime/actors/actor-context.js +13 -11
  46. package/dist/runtime/actors/actor-handoff.d.ts +4 -4
  47. package/dist/runtime/actors/actor-handoff.js +8 -8
  48. package/dist/runtime/actors/actor-lifecycle-snapshot.js +2 -1
  49. package/dist/runtime/actors/actor-local-native-join.d.ts +11 -6
  50. package/dist/runtime/actors/actor-local-native-join.js +83 -105
  51. package/dist/runtime/actors/actor-native-lookup.js +2 -8
  52. package/dist/runtime/actors/actor-packet-relay-wire.d.ts +3 -3
  53. package/dist/runtime/actors/actor-packet-relay-wire.js +5 -3
  54. package/dist/runtime/actors/actor-remote-joiner.d.ts +1 -1
  55. package/dist/runtime/actors/actor-remote-joiner.js +5 -9
  56. package/dist/runtime/actors/actor-remote-wire.js +5 -3
  57. package/dist/runtime/actors/actor-request-deadline.d.ts +1 -0
  58. package/dist/runtime/actors/actor-request-deadline.js +6 -0
  59. package/dist/runtime/actors/actor-retry-delay.js +2 -1
  60. package/dist/runtime/actors/actor-routed-join-transport.d.ts +2 -3
  61. package/dist/runtime/actors/actor-runtime-state.d.ts +9 -21
  62. package/dist/runtime/actors/actor-runtime-state.js +70 -187
  63. package/dist/runtime/actors/bound-session-wire.js +2 -7
  64. package/dist/runtime/actors/deferred-join-completion.d.ts +11 -6
  65. package/dist/runtime/actors/deferred-join-completion.js +1 -0
  66. package/dist/runtime/actors/index.d.ts +9 -7
  67. package/dist/runtime/actors/index.js +87 -69
  68. package/dist/runtime/actors/spot-actor-dispatch.d.ts +3 -3
  69. package/dist/runtime/actors/spot-actor-dispatch.js +25 -10
  70. package/dist/runtime/actors/transferred-actor-rollback.d.ts +3 -5
  71. package/dist/runtime/actors/transferred-actor-rollback.js +9 -42
  72. package/dist/runtime/admission.d.ts +2 -0
  73. package/dist/runtime/admission.js +7 -1
  74. package/dist/runtime/application-jobs/application-job-queue-scope.d.ts +1 -1
  75. package/dist/runtime/application-jobs/application-job-queue-scope.js +1 -1
  76. package/dist/runtime/backend/contracts/index.d.ts +7 -27
  77. package/dist/runtime/backend/mesh-actor-session-node-adapter.js +1 -17
  78. package/dist/runtime/backend/mesh-dispatch-pump.d.ts +1 -2
  79. package/dist/runtime/backend/mesh-dispatch-pump.js +95 -107
  80. package/dist/runtime/backend/node/node-backend-adapter-support.d.ts +3 -1
  81. package/dist/runtime/backend/node/node-backend-adapter-support.js +51 -10
  82. package/dist/runtime/backend/node/node-dealer-channel-client-transport.d.ts +1 -1
  83. package/dist/runtime/backend/node/node-dealer-channel-client-transport.js +1 -2
  84. package/dist/runtime/backend/node/node-event-loop-poller.d.ts +2 -2
  85. package/dist/runtime/backend/node/node-event-loop-poller.js +6 -7
  86. package/dist/runtime/backend/node/node-monitor-backend-adapter.js +1 -0
  87. package/dist/runtime/backend/node/node-raw-binding-port.js +41 -34
  88. package/dist/runtime/backend/node/node-raw-mesh-backend.d.ts +14 -15
  89. package/dist/runtime/backend/node/node-raw-mesh-backend.js +146 -118
  90. package/dist/runtime/backend/node/node-socket-backend-adapter.js +4 -3
  91. package/dist/runtime/backend/raw-binding-port.d.ts +1 -1
  92. package/dist/runtime/backend/runtime-values.d.ts +4 -1
  93. package/dist/runtime/backend/runtime-values.js +2 -0
  94. package/dist/runtime/channels/channel-clients.d.ts +20 -8
  95. package/dist/runtime/channels/channel-clients.js +73 -59
  96. package/dist/runtime/channels/channel-envelope-inspection.js +2 -1
  97. package/dist/runtime/channels/channel-envelope.d.ts +1 -1
  98. package/dist/runtime/channels/channel-envelope.js +51 -39
  99. package/dist/runtime/channels/channel-outbound-operations.d.ts +5 -2
  100. package/dist/runtime/channels/channel-outbound-operations.js +25 -42
  101. package/dist/runtime/channels/channel-receive-loops.d.ts +8 -3
  102. package/dist/runtime/channels/channel-receive-loops.js +27 -6
  103. package/dist/runtime/channels/channel-runtime-lifecycle.d.ts +12 -1
  104. package/dist/runtime/channels/channel-runtime-lifecycle.js +48 -28
  105. package/dist/runtime/channels/channel-runtime-manager.d.ts +4 -4
  106. package/dist/runtime/channels/channel-runtime-manager.js +13 -10
  107. package/dist/runtime/channels/channel-socket-options.js +3 -12
  108. package/dist/runtime/channels/channel-socket-registry.d.ts +14 -29
  109. package/dist/runtime/channels/channel-socket-registry.js +240 -177
  110. package/dist/runtime/channels/channel-transports.d.ts +21 -31
  111. package/dist/runtime/channels/channel-transports.js +80 -62
  112. package/dist/runtime/channels/client-server-location-runtime.d.ts +1 -1
  113. package/dist/runtime/channels/client-server-location-runtime.js +10 -11
  114. package/dist/runtime/channels/client-server-service-wire.d.ts +7 -2
  115. package/dist/runtime/channels/client-server-service-wire.js +32 -11
  116. package/dist/runtime/channels/dispatch-error-reporter.d.ts +1 -2
  117. package/dist/runtime/channels/dispatch-error-reporter.js +2 -1
  118. package/dist/runtime/channels/fanout-location-runtime.d.ts +16 -3
  119. package/dist/runtime/channels/fanout-location-runtime.js +130 -72
  120. package/dist/runtime/channels/local-spot-route-transport.d.ts +1 -1
  121. package/dist/runtime/channels/local-spot-route-transport.js +1 -3
  122. package/dist/runtime/channels/router-socket-spot-route-transport.d.ts +1 -1
  123. package/dist/runtime/channels/router-socket-spot-route-transport.js +2 -2
  124. package/dist/runtime/channels/source-spot-router.d.ts +1 -1
  125. package/dist/runtime/channels/source-spot-router.js +2 -4
  126. package/dist/runtime/channels/spot-direct-envelope.d.ts +1 -0
  127. package/dist/runtime/channels/spot-direct-envelope.js +4 -3
  128. package/dist/runtime/channels/spot-node-route-transport.d.ts +1 -1
  129. package/dist/runtime/channels/spot-node-route-transport.js +5 -5
  130. package/dist/runtime/channels/spot-route-bridge-transport.d.ts +1 -1
  131. package/dist/runtime/channels/spot-route-bridge-transport.js +2 -2
  132. package/dist/runtime/channels/spot-route-dispatch-strategy.d.ts +2 -4
  133. package/dist/runtime/channels/spot-route-dispatch-strategy.js +11 -12
  134. package/dist/runtime/diagnostics/diagnostic-text.d.ts +2 -0
  135. package/dist/runtime/diagnostics/diagnostic-text.js +7 -0
  136. package/dist/runtime/diagnostics/dispatch-error-details.d.ts +3 -0
  137. package/dist/runtime/diagnostics/dispatch-error-details.js +30 -2
  138. package/dist/runtime/diagnostics/flow-context.d.ts +6 -0
  139. package/dist/runtime/diagnostics/flow-context.js +16 -2
  140. package/dist/runtime/diagnostics/index.d.ts +4 -2
  141. package/dist/runtime/diagnostics/index.js +14 -4
  142. package/dist/runtime/diagnostics/message-flow.d.ts +1 -1
  143. package/dist/runtime/diagnostics/message-flow.js +10 -19
  144. package/dist/runtime/diagnostics/runtime-metrics.d.ts +94 -31
  145. package/dist/runtime/diagnostics/runtime-metrics.js +168 -105
  146. package/dist/runtime/diagnostics/runtime-observation-queue.js +3 -2
  147. package/dist/runtime/diagnostics/topology-runtime-projections.d.ts +2 -4
  148. package/dist/runtime/diagnostics/topology-runtime-projections.js +135 -154
  149. package/dist/runtime/disposal.d.ts +5 -0
  150. package/dist/runtime/disposal.js +22 -0
  151. package/dist/runtime/execution/index.d.ts +12 -9
  152. package/dist/runtime/execution/index.js +58 -14
  153. package/dist/runtime/execution/serial-execution-queue.d.ts +8 -2
  154. package/dist/runtime/execution/serial-execution-queue.js +54 -15
  155. package/dist/runtime/execution/state-lane.d.ts +8 -1
  156. package/dist/runtime/execution/state-lane.js +118 -3
  157. package/dist/runtime/foundation/actor-join-recovery-codec.d.ts +3 -0
  158. package/dist/runtime/foundation/actor-join-recovery-codec.js +15 -11
  159. package/dist/runtime/foundation/event-loop-resources.d.ts +2 -24
  160. package/dist/runtime/foundation/event-loop-resources.js +6 -119
  161. package/dist/runtime/foundation/operation-identity.d.ts +2 -0
  162. package/dist/runtime/foundation/operation-identity.js +9 -5
  163. package/dist/runtime/foundation/operation-registry.d.ts +5 -7
  164. package/dist/runtime/foundation/operation-registry.js +34 -44
  165. package/dist/runtime/foundation/raw-service-mesh-runtime.d.ts +8 -5
  166. package/dist/runtime/foundation/raw-service-mesh-runtime.js +79 -94
  167. package/dist/runtime/foundation/runtime-state-projections.d.ts +3 -1
  168. package/dist/runtime/foundation/runtime-state-projections.js +8 -0
  169. package/dist/runtime/foundation/service-authority-payload-codec.js +22 -12
  170. package/dist/runtime/foundation/service-discovery-registry.d.ts +4 -0
  171. package/dist/runtime/foundation/service-discovery-registry.js +22 -3
  172. package/dist/runtime/foundation/service-instance-activation-recovery-codec.js +8 -4
  173. package/dist/runtime/foundation/service-liveness-registry.js +2 -1
  174. package/dist/runtime/foundation/service-maintenance-runtime.d.ts +0 -1
  175. package/dist/runtime/foundation/service-maintenance-runtime.js +0 -6
  176. package/dist/runtime/foundation/service-metadata-codec.js +3 -3
  177. package/dist/runtime/foundation/service-relocation-aggregate-committer.d.ts +2 -5
  178. package/dist/runtime/foundation/service-relocation-aggregate-committer.js +1 -48
  179. package/dist/runtime/foundation/service-relocation-object-owner.js +3 -2
  180. package/dist/runtime/foundation/service-relocation-runtime.js +43 -32
  181. package/dist/runtime/foundation/service-runtime-contracts.d.ts +40 -8
  182. package/dist/runtime/foundation/service-runtime-contracts.js +25 -1
  183. package/dist/runtime/foundation/service-session-binding-ingress-port.d.ts +0 -12
  184. package/dist/runtime/foundation/service-stateful-registry.d.ts +2 -0
  185. package/dist/runtime/foundation/service-stateful-registry.js +10 -2
  186. package/dist/runtime/foundation/service-stateful-runtime.d.ts +26 -25
  187. package/dist/runtime/foundation/service-stateful-runtime.js +217 -204
  188. package/dist/runtime/foundation/service-stateful-wire-codec.d.ts +3 -3
  189. package/dist/runtime/foundation/service-stateful-wire-codec.js +89 -55
  190. package/dist/runtime/foundation/service-topology-registry.d.ts +0 -1
  191. package/dist/runtime/foundation/service-topology-registry.js +17 -32
  192. package/dist/runtime/foundation/service-wire-binary-primitives.d.ts +5 -0
  193. package/dist/runtime/foundation/service-wire-binary-primitives.js +6 -0
  194. package/dist/runtime/foundation/service-wire-codec.js +10 -8
  195. package/dist/runtime/foundation/service-wire-constants.generated.d.ts +1 -0
  196. package/dist/runtime/foundation/service-wire-constants.generated.js +2 -1
  197. package/dist/runtime/foundation/service-wire-m6a-codec.d.ts +2 -0
  198. package/dist/runtime/foundation/service-wire-m6a-codec.js +23 -13
  199. package/dist/runtime/framework-errors-internal.d.ts +2 -1
  200. package/dist/runtime/framework-errors-internal.js +343 -122
  201. package/dist/runtime/handlers/handler-instance-scope.d.ts +3 -1
  202. package/dist/runtime/handlers/handler-instance-scope.js +61 -74
  203. package/dist/runtime/host/actor-packet-relay.d.ts +11 -8
  204. package/dist/runtime/host/actor-packet-relay.js +54 -99
  205. package/dist/runtime/host/actor-placement-coordinator.js +7 -5
  206. package/dist/runtime/host/actor-runtime-options-factory.d.ts +2 -0
  207. package/dist/runtime/host/actor-runtime-options-factory.js +17 -4
  208. package/dist/runtime/host/actor-transfer-runtime.d.ts +16 -18
  209. package/dist/runtime/host/actor-transfer-runtime.js +143 -176
  210. package/dist/runtime/host/application-job-queue.js +16 -33
  211. package/dist/runtime/host/bound-session-relay.js +1 -1
  212. package/dist/runtime/host/channel-runtime-options-factory.js +1 -1
  213. package/dist/runtime/host/index.d.ts +14 -13
  214. package/dist/runtime/host/index.js +190 -171
  215. package/dist/runtime/host/instance-activation-authority.d.ts +2 -3
  216. package/dist/runtime/host/instance-activation-authority.js +17 -45
  217. package/dist/runtime/host/location-runtime-owner.d.ts +1 -1
  218. package/dist/runtime/host/location-runtime-owner.js +2 -2
  219. package/dist/runtime/host/remote-actor-join-receiver.d.ts +2 -2
  220. package/dist/runtime/host/remote-actor-join-receiver.js +1 -14
  221. package/dist/runtime/host/remote-actor-packet-target-store.d.ts +3 -2
  222. package/dist/runtime/host/remote-actor-packet-target-store.js +8 -47
  223. package/dist/runtime/host/remote-bound-session-relay.d.ts +2 -3
  224. package/dist/runtime/host/remote-bound-session-relay.js +15 -28
  225. package/dist/runtime/host/route-mesh-runtime.d.ts +13 -11
  226. package/dist/runtime/host/route-mesh-runtime.js +171 -252
  227. package/dist/runtime/host/runtime-shutdown.d.ts +2 -0
  228. package/dist/runtime/host/runtime-shutdown.js +18 -21
  229. package/dist/runtime/host/service-relocation-control.js +6 -1
  230. package/dist/runtime/host/service-relocation-host-runtime.d.ts +21 -30
  231. package/dist/runtime/host/service-relocation-host-runtime.js +508 -416
  232. package/dist/runtime/host/spot-address-transport.d.ts +3 -12
  233. package/dist/runtime/host/spot-address-transport.js +78 -220
  234. package/dist/runtime/host/spot-node-runtime-options-factory.d.ts +1 -1
  235. package/dist/runtime/host/spot-node-runtime-options-factory.js +3 -2
  236. package/dist/runtime/host/spot-runtime-options-factory.d.ts +4 -10
  237. package/dist/runtime/host/spot-runtime-options-factory.js +50 -14
  238. package/dist/runtime/host/user-spot-creation-coordinator.d.ts +3 -3
  239. package/dist/runtime/host/user-spot-creation-coordinator.js +11 -8
  240. package/dist/runtime/locations/aggregate-inventory-store.js +13 -10
  241. package/dist/runtime/locations/authority-key-codec.js +4 -3
  242. package/dist/runtime/locations/auto-connect-reconciler.d.ts +4 -0
  243. package/dist/runtime/locations/auto-connect-reconciler.js +37 -25
  244. package/dist/runtime/locations/creation-operation-id.js +6 -4
  245. package/dist/runtime/locations/domain-store-contract.d.ts +3 -3
  246. package/dist/runtime/locations/in-memory-authority-store.js +31 -15
  247. package/dist/runtime/locations/in-memory-location-store.d.ts +2 -2
  248. package/dist/runtime/locations/in-memory-location-store.js +17 -14
  249. package/dist/runtime/locations/in-memory-provider-location-store.d.ts +1 -0
  250. package/dist/runtime/locations/in-memory-provider-location-store.js +72 -22
  251. package/dist/runtime/locations/key-codec.js +3 -2
  252. package/dist/runtime/locations/lease-tracker.d.ts +3 -5
  253. package/dist/runtime/locations/lease-tracker.js +7 -11
  254. package/dist/runtime/locations/lifecycle.d.ts +4 -9
  255. package/dist/runtime/locations/lifecycle.js +2 -31
  256. package/dist/runtime/locations/location-store-failure.d.ts +2 -0
  257. package/dist/runtime/locations/location-store-failure.js +7 -0
  258. package/dist/runtime/locations/location-store-pages.d.ts +3 -0
  259. package/dist/runtime/locations/location-store-pages.js +13 -0
  260. package/dist/runtime/locations/location-store-repository.d.ts +5 -7
  261. package/dist/runtime/locations/location-store-repository.js +309 -336
  262. package/dist/runtime/locations/relocation-blob.js +18 -5
  263. package/dist/runtime/locations/resolvers.d.ts +5 -5
  264. package/dist/runtime/locations/resolvers.js +37 -28
  265. package/dist/runtime/locations/runtime.d.ts +5 -4
  266. package/dist/runtime/locations/runtime.js +123 -92
  267. package/dist/runtime/locations/spot-location-claims.d.ts +6 -0
  268. package/dist/runtime/locations/spot-location-claims.js +42 -1
  269. package/dist/runtime/messaging/payload-codec.js +26 -20
  270. package/dist/runtime/messaging/request-deadline.d.ts +3 -0
  271. package/dist/runtime/messaging/request-deadline.js +39 -0
  272. package/dist/runtime/messaging/submission-result.d.ts +4 -0
  273. package/dist/runtime/messaging/submission-result.js +56 -1
  274. package/dist/runtime/protocol/service_wire_codec.generated.d.ts +1 -0
  275. package/dist/runtime/protocol/service_wire_codec.generated.js +12 -7
  276. package/dist/runtime/spots/formal-remote-actor-transfer-registry.d.ts +4 -1
  277. package/dist/runtime/spots/index.d.ts +14 -20
  278. package/dist/runtime/spots/index.js +302 -176
  279. package/dist/runtime/spots/spot-activation-registry.d.ts +3 -5
  280. package/dist/runtime/spots/spot-activation-registry.js +14 -50
  281. package/dist/runtime/spots/spot-activation-state.d.ts +1 -1
  282. package/dist/runtime/spots/spot-activation-state.js +2 -2
  283. package/dist/runtime/spots/spot-activation.d.ts +3 -4
  284. package/dist/runtime/spots/spot-activation.js +49 -32
  285. package/dist/runtime/spots/spot-actor-admission-coordinator.d.ts +1 -2
  286. package/dist/runtime/spots/spot-actor-admission-coordinator.js +3 -40
  287. package/dist/runtime/spots/spot-actor-join-dispatch.d.ts +10 -18
  288. package/dist/runtime/spots/spot-actor-join-dispatch.js +4 -52
  289. package/dist/runtime/spots/spot-actor-membership.d.ts +4 -6
  290. package/dist/runtime/spots/spot-actor-membership.js +22 -45
  291. package/dist/runtime/spots/spot-actor-packet-dispatch.d.ts +0 -1
  292. package/dist/runtime/spots/spot-actor-packet-dispatch.js +0 -9
  293. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.d.ts +2 -2
  294. package/dist/runtime/spots/spot-actor-packet-relay-dispatch.js +1 -7
  295. package/dist/runtime/spots/spot-context.d.ts +2 -2
  296. package/dist/runtime/spots/spot-entry-activation.d.ts +2 -2
  297. package/dist/runtime/spots/spot-entry-activation.js +9 -20
  298. package/dist/runtime/spots/spot-lifecycle-metrics.js +3 -2
  299. package/dist/runtime/spots/spot-manager-public.d.ts +5 -6
  300. package/dist/runtime/spots/spot-manager-public.js +5 -4
  301. package/dist/runtime/spots/spot-node-autoconnect.js +22 -31
  302. package/dist/runtime/spots/spot-node-runtime-manager.d.ts +19 -18
  303. package/dist/runtime/spots/spot-node-runtime-manager.js +67 -72
  304. package/dist/runtime/spots/spot-outbound.d.ts +7 -8
  305. package/dist/runtime/spots/spot-outbound.js +21 -23
  306. package/dist/runtime/spots/spot-remote-codec.js +5 -3
  307. package/dist/runtime/spots/spot-route-packet-dispatch.d.ts +2 -2
  308. package/dist/runtime/spots/spot-route-packet-dispatch.js +8 -8
  309. package/dist/runtime/spots/spot-route-replies.d.ts +2 -2
  310. package/dist/runtime/spots/spot-route-replies.js +3 -1
  311. package/dist/runtime/spots/spot-routed-actor-admission.d.ts +3 -3
  312. package/dist/runtime/spots/spot-routed-actor-admission.js +3 -12
  313. package/dist/runtime/spots/spot-routed-frame-dispatch.d.ts +1 -2
  314. package/dist/runtime/spots/spot-routed-frame-dispatch.js +0 -1
  315. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.d.ts +4 -0
  316. package/dist/runtime/spots/spot-routed-spot-packet-dispatch.js +65 -15
  317. package/dist/runtime/spots/spot-runtime-ports.d.ts +2 -16
  318. package/dist/runtime/spots/spot-serial-executor.js +2 -2
  319. package/dist/runtime/spots/spot-serial-turn-executor.d.ts +27 -7
  320. package/dist/runtime/spots/spot-serial-turn-executor.js +83 -11
  321. package/dist/runtime/spots/spot-timer.d.ts +3 -2
  322. package/dist/runtime/streams/actor-session-binding-registry.d.ts +16 -29
  323. package/dist/runtime/streams/actor-session-binding-registry.js +142 -212
  324. package/dist/runtime/streams/actor-session-binding-runtime-owner.d.ts +1 -4
  325. package/dist/runtime/streams/bound-actor-relay-sender.d.ts +8 -4
  326. package/dist/runtime/streams/bound-actor-relay-sender.js +65 -41
  327. package/dist/runtime/streams/bound-session-service.d.ts +7 -0
  328. package/dist/runtime/streams/bound-session-service.js +12 -2
  329. package/dist/runtime/streams/index.d.ts +16 -17
  330. package/dist/runtime/streams/index.js +22 -23
  331. package/dist/runtime/streams/managed-stream.d.ts +5 -2
  332. package/dist/runtime/streams/managed-stream.js +20 -13
  333. package/dist/runtime/streams/native-fallback-bound-session.js +14 -19
  334. package/dist/runtime/streams/protocol.d.ts +6 -33
  335. package/dist/runtime/streams/protocol.js +38 -110
  336. package/dist/runtime/streams/session-actor-coordinator.d.ts +2 -3
  337. package/dist/runtime/streams/session-actor-coordinator.js +12 -4
  338. package/dist/runtime/streams/session-calls.d.ts +6 -8
  339. package/dist/runtime/streams/session-calls.js +6 -22
  340. package/dist/runtime/streams/session-context.d.ts +10 -10
  341. package/dist/runtime/streams/session-context.js +25 -10
  342. package/dist/runtime/streams/session-requests.js +2 -1
  343. package/dist/runtime/streams/stream-binding-runtime-ports.d.ts +16 -1
  344. package/dist/runtime/streams/stream-frame-factory.js +2 -2
  345. package/dist/runtime/streams/stream-session-runtime.d.ts +10 -11
  346. package/dist/runtime/streams/stream-session-runtime.js +25 -33
  347. package/dist/runtime/workers/index.d.ts +2 -2
  348. package/dist/runtime/workers/index.js +5 -4
  349. package/package.json +3 -3
  350. package/src/contracts/Actors/ZLinkActorClient.ts +1 -1
  351. package/src/contracts/Channels/Calls.ts +1 -1
  352. package/src/contracts/Common/CoreTypes.ts +7 -0
  353. package/src/contracts/Common/index.ts +1 -1
  354. package/src/contracts/Configuration/Builders.ts +0 -1
  355. package/src/contracts/Configuration/Configs.ts +0 -1
  356. package/src/contracts/Configuration/InternalDefaults.ts +12 -0
  357. package/src/contracts/Configuration/Registration.ts +92 -48
  358. package/src/contracts/Configuration/RegistrationBuilderPolicy.ts +44 -2
  359. package/src/contracts/Configuration/RegistrationBuilders.ts +77 -71
  360. package/src/contracts/Configuration/RegistrationTypes.ts +1 -5
  361. package/src/contracts/Configuration/RegistrationValidators.ts +19 -17
  362. package/src/contracts/Configuration/TimerRegistrationValidator.ts +4 -2
  363. package/src/contracts/Dispatch/ZLinkDispatchOptions.ts +1 -0
  364. package/src/contracts/Handlers/JsonContract.ts +14 -4
  365. package/src/contracts/Locations/Authority.ts +7 -3
  366. package/src/contracts/Locations/Options.ts +1 -1
  367. package/src/contracts/Locations/Stores.ts +14 -0
  368. package/src/contracts/Spots/Contracts.ts +2 -2
  369. package/src/contracts/Streams/BoundSessionContracts.ts +1 -1
  370. package/src/contracts/Streams/IZLinkSession.ts +2 -3
  371. package/src/contracts/Streams/IZLinkSessionActor.ts +2 -6
  372. package/src/internal.ts +14 -0
  373. package/src/nest-integration.ts +28 -10
  374. package/src/runtime/abort.ts +6 -5
  375. package/src/runtime/activation-admission.ts +2 -8
  376. package/src/runtime/actors/actor-authority-payload-codec.ts +58 -20
  377. package/src/runtime/actors/actor-client.ts +85 -218
  378. package/src/runtime/actors/actor-context.ts +39 -33
  379. package/src/runtime/actors/actor-handoff.ts +24 -22
  380. package/src/runtime/actors/actor-lifecycle-snapshot.ts +2 -1
  381. package/src/runtime/actors/actor-local-native-join.ts +172 -174
  382. package/src/runtime/actors/actor-native-lookup.ts +2 -9
  383. package/src/runtime/actors/actor-packet-relay-wire.ts +18 -12
  384. package/src/runtime/actors/actor-remote-joiner.ts +9 -11
  385. package/src/runtime/actors/actor-remote-wire.ts +5 -3
  386. package/src/runtime/actors/actor-request-deadline.ts +4 -0
  387. package/src/runtime/actors/actor-retry-delay.ts +2 -1
  388. package/src/runtime/actors/actor-routed-join-transport.ts +3 -5
  389. package/src/runtime/actors/actor-runtime-state.ts +85 -247
  390. package/src/runtime/actors/bound-session-wire.ts +2 -8
  391. package/src/runtime/actors/deferred-join-completion.ts +10 -6
  392. package/src/runtime/actors/index.ts +100 -79
  393. package/src/runtime/actors/spot-actor-dispatch.ts +60 -29
  394. package/src/runtime/actors/transferred-actor-rollback.ts +11 -62
  395. package/src/runtime/admission.ts +8 -1
  396. package/src/runtime/application-jobs/application-job-queue-scope.ts +4 -4
  397. package/src/runtime/backend/contracts/index.ts +14 -37
  398. package/src/runtime/backend/mesh-actor-session-node-adapter.ts +2 -18
  399. package/src/runtime/backend/mesh-dispatch-pump.ts +111 -117
  400. package/src/runtime/backend/node/node-backend-adapter-support.ts +67 -10
  401. package/src/runtime/backend/node/node-dealer-channel-client-transport.ts +0 -2
  402. package/src/runtime/backend/node/node-event-loop-poller.ts +8 -12
  403. package/src/runtime/backend/node/node-monitor-backend-adapter.ts +1 -0
  404. package/src/runtime/backend/node/node-raw-binding-port.ts +44 -49
  405. package/src/runtime/backend/node/node-raw-mesh-backend.ts +227 -170
  406. package/src/runtime/backend/node/node-socket-backend-adapter.ts +4 -3
  407. package/src/runtime/backend/raw-binding-port.ts +1 -1
  408. package/src/runtime/backend/runtime-values.ts +4 -1
  409. package/src/runtime/channels/channel-clients.ts +139 -102
  410. package/src/runtime/channels/channel-envelope-inspection.ts +2 -1
  411. package/src/runtime/channels/channel-envelope.ts +74 -57
  412. package/src/runtime/channels/channel-outbound-operations.ts +40 -55
  413. package/src/runtime/channels/channel-receive-loops.ts +39 -7
  414. package/src/runtime/channels/channel-runtime-lifecycle.ts +60 -27
  415. package/src/runtime/channels/channel-runtime-manager.ts +12 -30
  416. package/src/runtime/channels/channel-socket-options.ts +8 -15
  417. package/src/runtime/channels/channel-socket-registry.ts +291 -196
  418. package/src/runtime/channels/channel-transports.ts +168 -145
  419. package/src/runtime/channels/client-server-location-runtime.ts +17 -17
  420. package/src/runtime/channels/client-server-service-wire.ts +40 -12
  421. package/src/runtime/channels/dispatch-error-reporter.ts +7 -5
  422. package/src/runtime/channels/fanout-location-runtime.ts +172 -91
  423. package/src/runtime/channels/local-spot-route-transport.ts +1 -5
  424. package/src/runtime/channels/router-socket-spot-route-transport.ts +2 -6
  425. package/src/runtime/channels/source-spot-router.ts +2 -9
  426. package/src/runtime/channels/spot-direct-envelope.ts +1 -1
  427. package/src/runtime/channels/spot-node-route-transport.ts +7 -9
  428. package/src/runtime/channels/spot-route-bridge-transport.ts +5 -12
  429. package/src/runtime/channels/spot-route-dispatch-strategy.ts +11 -30
  430. package/src/runtime/diagnostics/diagnostic-text.ts +4 -0
  431. package/src/runtime/diagnostics/dispatch-error-details.ts +36 -1
  432. package/src/runtime/diagnostics/flow-context.ts +16 -2
  433. package/src/runtime/diagnostics/index.ts +27 -17
  434. package/src/runtime/diagnostics/message-flow.ts +15 -25
  435. package/src/runtime/diagnostics/runtime-metrics.ts +181 -113
  436. package/src/runtime/diagnostics/runtime-observation-queue.ts +3 -2
  437. package/src/runtime/diagnostics/topology-runtime-projections.ts +194 -162
  438. package/src/runtime/disposal.ts +19 -0
  439. package/src/runtime/execution/index.ts +60 -20
  440. package/src/runtime/execution/serial-execution-queue.ts +131 -18
  441. package/src/runtime/execution/state-lane.ts +142 -4
  442. package/src/runtime/foundation/actor-join-recovery-codec.ts +13 -8
  443. package/src/runtime/foundation/event-loop-resources.ts +5 -122
  444. package/src/runtime/foundation/operation-identity.ts +11 -5
  445. package/src/runtime/foundation/operation-registry.ts +33 -50
  446. package/src/runtime/foundation/raw-service-mesh-runtime.ts +127 -125
  447. package/src/runtime/foundation/runtime-state-projections.ts +9 -1
  448. package/src/runtime/foundation/service-authority-payload-codec.ts +31 -13
  449. package/src/runtime/foundation/service-discovery-registry.ts +32 -3
  450. package/src/runtime/foundation/service-instance-activation-recovery-codec.ts +12 -4
  451. package/src/runtime/foundation/service-liveness-registry.ts +2 -1
  452. package/src/runtime/foundation/service-maintenance-runtime.ts +0 -10
  453. package/src/runtime/foundation/service-metadata-codec.ts +2 -2
  454. package/src/runtime/foundation/service-relocation-aggregate-committer.ts +3 -66
  455. package/src/runtime/foundation/service-relocation-object-owner.ts +5 -2
  456. package/src/runtime/foundation/service-relocation-runtime.ts +57 -35
  457. package/src/runtime/foundation/service-runtime-contracts.ts +46 -10
  458. package/src/runtime/foundation/service-session-binding-ingress-port.ts +0 -17
  459. package/src/runtime/foundation/service-stateful-registry.ts +14 -2
  460. package/src/runtime/foundation/service-stateful-runtime.ts +322 -276
  461. package/src/runtime/foundation/service-stateful-wire-codec.ts +128 -80
  462. package/src/runtime/foundation/service-topology-registry.ts +23 -32
  463. package/src/runtime/foundation/service-wire-binary-primitives.ts +6 -0
  464. package/src/runtime/foundation/service-wire-codec.ts +15 -8
  465. package/src/runtime/foundation/service-wire-constants.generated.ts +1 -0
  466. package/src/runtime/foundation/service-wire-m6a-codec.ts +29 -15
  467. package/src/runtime/framework-errors-internal.ts +380 -134
  468. package/src/runtime/handlers/handler-instance-scope.ts +68 -95
  469. package/src/runtime/host/actor-packet-relay.ts +63 -160
  470. package/src/runtime/host/actor-placement-coordinator.ts +8 -5
  471. package/src/runtime/host/actor-runtime-options-factory.ts +27 -8
  472. package/src/runtime/host/actor-transfer-runtime.ts +180 -260
  473. package/src/runtime/host/application-job-queue.ts +28 -34
  474. package/src/runtime/host/bound-session-relay.ts +1 -2
  475. package/src/runtime/host/channel-runtime-options-factory.ts +1 -2
  476. package/src/runtime/host/index.ts +327 -320
  477. package/src/runtime/host/instance-activation-authority.ts +89 -109
  478. package/src/runtime/host/location-runtime-owner.ts +4 -2
  479. package/src/runtime/host/remote-actor-join-receiver.ts +3 -31
  480. package/src/runtime/host/remote-actor-packet-target-store.ts +17 -58
  481. package/src/runtime/host/remote-bound-session-relay.ts +16 -57
  482. package/src/runtime/host/route-mesh-runtime.ts +228 -271
  483. package/src/runtime/host/runtime-shutdown.ts +17 -21
  484. package/src/runtime/host/service-relocation-control.ts +14 -1
  485. package/src/runtime/host/service-relocation-host-runtime.ts +699 -561
  486. package/src/runtime/host/spot-address-transport.ts +175 -356
  487. package/src/runtime/host/spot-node-runtime-options-factory.ts +6 -3
  488. package/src/runtime/host/spot-runtime-options-factory.ts +73 -22
  489. package/src/runtime/host/user-spot-creation-coordinator.ts +36 -22
  490. package/src/runtime/locations/aggregate-inventory-store.ts +16 -13
  491. package/src/runtime/locations/authority-key-codec.ts +7 -3
  492. package/src/runtime/locations/auto-connect-reconciler.ts +39 -26
  493. package/src/runtime/locations/creation-operation-id.ts +6 -3
  494. package/src/runtime/locations/domain-store-contract.ts +12 -3
  495. package/src/runtime/locations/in-memory-authority-store.ts +44 -15
  496. package/src/runtime/locations/in-memory-location-store.ts +50 -39
  497. package/src/runtime/locations/in-memory-provider-location-store.ts +100 -25
  498. package/src/runtime/locations/key-codec.ts +3 -2
  499. package/src/runtime/locations/lease-tracker.ts +8 -14
  500. package/src/runtime/locations/lifecycle.ts +13 -43
  501. package/src/runtime/locations/location-store-failure.ts +4 -0
  502. package/src/runtime/locations/location-store-pages.ts +18 -0
  503. package/src/runtime/locations/location-store-repository.ts +457 -482
  504. package/src/runtime/locations/relocation-blob.ts +17 -6
  505. package/src/runtime/locations/resolvers.ts +75 -49
  506. package/src/runtime/locations/runtime.ts +220 -110
  507. package/src/runtime/locations/spot-location-claims.ts +58 -1
  508. package/src/runtime/messaging/payload-codec.ts +35 -24
  509. package/src/runtime/messaging/request-deadline.ts +58 -0
  510. package/src/runtime/messaging/submission-result.ts +72 -2
  511. package/src/runtime/protocol/service_wire_codec.generated.ts +18 -8
  512. package/src/runtime/protocol/service_wire_pilot_codec.generated.ts +1 -1
  513. package/src/runtime/spots/formal-remote-actor-transfer-registry.ts +4 -1
  514. package/src/runtime/spots/index.ts +433 -229
  515. package/src/runtime/spots/spot-activation-registry.ts +30 -69
  516. package/src/runtime/spots/spot-activation-state.ts +2 -2
  517. package/src/runtime/spots/spot-activation.ts +67 -37
  518. package/src/runtime/spots/spot-actor-admission-coordinator.ts +5 -57
  519. package/src/runtime/spots/spot-actor-join-dispatch.ts +24 -77
  520. package/src/runtime/spots/spot-actor-membership.ts +40 -72
  521. package/src/runtime/spots/spot-actor-packet-dispatch.ts +0 -16
  522. package/src/runtime/spots/spot-actor-packet-relay-dispatch.ts +3 -15
  523. package/src/runtime/spots/spot-context.ts +3 -3
  524. package/src/runtime/spots/spot-entry-activation.ts +13 -30
  525. package/src/runtime/spots/spot-lifecycle-metrics.ts +3 -2
  526. package/src/runtime/spots/spot-manager-public.ts +21 -17
  527. package/src/runtime/spots/spot-node-autoconnect.ts +20 -26
  528. package/src/runtime/spots/spot-node-runtime-manager.ts +136 -125
  529. package/src/runtime/spots/spot-outbound.ts +59 -47
  530. package/src/runtime/spots/spot-remote-codec.ts +7 -3
  531. package/src/runtime/spots/spot-route-packet-dispatch.ts +25 -24
  532. package/src/runtime/spots/spot-route-replies.ts +6 -4
  533. package/src/runtime/spots/spot-routed-actor-admission.ts +13 -26
  534. package/src/runtime/spots/spot-routed-frame-dispatch.ts +2 -3
  535. package/src/runtime/spots/spot-routed-spot-packet-dispatch.ts +95 -22
  536. package/src/runtime/spots/spot-runtime-ports.ts +5 -27
  537. package/src/runtime/spots/spot-serial-executor.ts +2 -2
  538. package/src/runtime/spots/spot-serial-turn-executor.ts +112 -11
  539. package/src/runtime/spots/spot-timer.ts +3 -2
  540. package/src/runtime/streams/actor-session-binding-registry.ts +179 -269
  541. package/src/runtime/streams/actor-session-binding-runtime-owner.ts +0 -8
  542. package/src/runtime/streams/bound-actor-relay-sender.ts +98 -66
  543. package/src/runtime/streams/bound-session-service.ts +22 -2
  544. package/src/runtime/streams/index.ts +78 -68
  545. package/src/runtime/streams/managed-stream.ts +32 -23
  546. package/src/runtime/streams/native-fallback-bound-session.ts +14 -28
  547. package/src/runtime/streams/protocol.ts +34 -88
  548. package/src/runtime/streams/session-actor-coordinator.ts +17 -5
  549. package/src/runtime/streams/session-calls.ts +11 -36
  550. package/src/runtime/streams/session-context.ts +60 -25
  551. package/src/runtime/streams/session-requests.ts +2 -1
  552. package/src/runtime/streams/stream-binding-runtime-ports.ts +22 -1
  553. package/src/runtime/streams/stream-frame-factory.ts +2 -3
  554. package/src/runtime/streams/stream-session-runtime.ts +57 -59
  555. package/src/runtime/workers/index.ts +13 -12
  556. package/dist/runtime/actors/post-commit-actor-location.d.ts +0 -19
  557. package/dist/runtime/actors/post-commit-actor-location.js +0 -72
  558. package/dist/runtime/spots/spot-native-actor-join-admission.d.ts +0 -26
  559. package/dist/runtime/spots/spot-native-actor-join-admission.js +0 -106
  560. package/src/runtime/actors/post-commit-actor-location.ts +0 -121
  561. package/src/runtime/spots/spot-native-actor-join-admission.ts +0 -155
@@ -1,11 +1,14 @@
1
- import type {
2
- ZLinkHostCapacityStatus,
3
- ZLinkMeter,
4
- ZLinkMeterProvider,
5
- ZLinkMetricAttributes
6
- } from '../../contracts';
7
- import { ZLinkMeters } from '../../contracts';
8
1
  import { metrics as openTelemetryMetrics } from '@opentelemetry/api';
2
+ import {
3
+ type ZLinkHostCapacityStatus,
4
+ type ZLinkMeter,
5
+ type ZLinkMeterProvider,
6
+ type ZLinkMetricAttributes,
7
+ ZLinkMeters
8
+ } from '../../contracts';
9
+
10
+ export const MILLISECONDS_PER_SECOND = 1000;
11
+ export const NANOSECONDS_PER_SECOND = 1e9;
9
12
 
10
13
  type CounterInstrument = ReturnType<ZLinkMeter['createCounter']>;
11
14
  type UpDownInstrument = ReturnType<ZLinkMeter['createUpDownCounter']>;
@@ -80,78 +83,143 @@ export interface ZLinkRelocationMetricOperation extends ZLinkRuntimeMetricOperat
80
83
  recordBytes(bytes: number): void;
81
84
  }
82
85
 
86
+ export const METRIC_NAMES = Object.freeze({
87
+ StreamConnectionsOpened: 'zlink.stream.connections.opened',
88
+ StreamConnectionsClosed: 'zlink.stream.connections.closed',
89
+ MeshNodeChannelSelectionFailures: 'zlink.mesh_node.channel.selection_failures',
90
+ MeshNodeRequestTimeouts: 'zlink.mesh_node.request.timeouts',
91
+ MeshNodeMessagesDropped: 'zlink.mesh_node.messages.dropped',
92
+ RelocationStarted: 'zlink.relocation.started',
93
+ RelocationCompleted: 'zlink.relocation.completed',
94
+ RelocationCutoverTimeout: 'zlink.relocation.cutover_timeout',
95
+ InstanceSpotActivations: 'zlink.instance_spot.activations',
96
+ InstanceSpotClaimConflicts: 'zlink.instance_spot.claim.conflicts',
97
+ InstanceSpotTakeovers: 'zlink.instance_spot.takeovers',
98
+ LocationStoreErrors: 'zlink.location.store.errors',
99
+ LocationOwnerLeaseRenewFailures: 'zlink.location.owner_lease.renew.failures',
100
+ ObservabilityEventsOverflow: 'zlink.observability.events.overflow',
101
+ HostRelocationBlocked: 'zlink.host.relocation.blocked',
102
+ HostShutdownForced: 'zlink.host.shutdown.forced',
103
+ StreamConnectionsActive: 'zlink.stream.connections.active',
104
+ SpotCount: 'zlink.spot.count',
105
+ ActorCount: 'zlink.actor.count',
106
+ MeshNodeRequestsInflight: 'zlink.mesh_node.requests.inflight',
107
+ MeshNodeRequestDuration: 'zlink.mesh_node.request.duration',
108
+ RelocationDuration: 'zlink.relocation.duration',
109
+ RelocationBytes: 'zlink.relocation.bytes',
110
+ RelocationInterruption: 'zlink.relocation.interruption',
111
+ RelocationTargetResume: 'zlink.relocation.target_resume',
112
+ RelocationRouteConvergence: 'zlink.relocation.route_convergence',
113
+ InstanceSpotActivationDuration: 'zlink.instance_spot.activation.duration',
114
+ LocationOwnerLeaseRenewLateness: 'zlink.location.owner_lease.renew.lateness',
115
+ HostRelocationDuration: 'zlink.host.relocation.duration',
116
+ HostShutdownDuration: 'zlink.host.shutdown.duration',
117
+ MeshNodePeersConfigured: 'zlink.mesh_node.peers.configured',
118
+ MeshNodePeersConnected: 'zlink.mesh_node.peers.connected',
119
+ MeshNodePeersReady: 'zlink.mesh_node.peers.ready',
120
+ MeshNodeChannelsReadyMembers: 'zlink.mesh_node.channels.ready_members',
121
+ ObjectCapacityActive: 'zlink.object.capacity.active',
122
+ ObjectCapacityReserved: 'zlink.object.capacity.reserved',
123
+ ObjectCapacityLimit: 'zlink.object.capacity.limit',
124
+ SpotTypeCapacityActive: 'zlink.spot.type.capacity.active',
125
+ SpotTypeCapacityReserved: 'zlink.spot.type.capacity.reserved',
126
+ SpotTypeCapacityLimit: 'zlink.spot.type.capacity.limit',
127
+ ObjectActivationActive: 'zlink.object.activation.active',
128
+ ObjectActivationLimit: 'zlink.object.activation.limit',
129
+ InstanceSpotPendingMessages: 'zlink.instance_spot.pending.messages',
130
+ InstanceSpotPendingBytes: 'zlink.instance_spot.pending.bytes',
131
+ HostState: 'zlink.host.state',
132
+ HostCoreHwmEffectiveBudget: 'zlink.host.core_hwm.effective_budget',
133
+ HostCoreHwmApplied: 'zlink.host.core_hwm.applied',
134
+ HostCoreHwmAccounted: 'zlink.host.core_hwm.accounted',
135
+ HostCoreHwmCompletionAccounted: 'zlink.host.core_hwm.completion_accounted',
136
+ HostCoreHwmBlockedRatio: 'zlink.host.core_hwm.blocked_ratio',
137
+ HostApplicationJobQueueLimit: 'zlink.host.application_job_queue.limit',
138
+ HostApplicationJobQueueJobs: 'zlink.host.application_job_queue.jobs',
139
+ HostApplicationJobQueueCapacityWaiters: 'zlink.host.application_job_queue.capacity_waiters',
140
+ HostApplicationJobQueuePressureState: 'zlink.host.application_job_queue.pressure_state',
141
+ HostApplicationJobQueuePauseDuration: 'zlink.host.application_job_queue.pause_duration',
142
+ HostApplicationJobQueueCapacityWaits: 'zlink.host.application_job_queue.capacity_waits',
143
+ HostApplicationJobQueueCapacityWaitDuration:
144
+ 'zlink.host.application_job_queue.capacity_wait_duration',
145
+ HostApplicationJobQueuePressureTransitions:
146
+ 'zlink.host.application_job_queue.pressure_transitions',
147
+ HostApplicationJobQueueFlowStateConfigFailures:
148
+ 'zlink.host.application_job_queue.flow_state_config_failures'
149
+ } as const);
150
+
83
151
  const COUNTERS = Object.freeze({
84
- 'zlink.stream.connections.opened': '{connection}',
85
- 'zlink.stream.connections.closed': '{connection}',
86
- 'zlink.mesh_node.channel.selection_failures': '{failure}',
87
- 'zlink.mesh_node.request.timeouts': '{request}',
88
- 'zlink.mesh_node.messages.dropped': '{message}',
89
- 'zlink.relocation.started': '{relocation}',
90
- 'zlink.relocation.completed': '{relocation}',
91
- 'zlink.relocation.cutover_timeout': '{fallback}',
92
- 'zlink.instance_spot.activations': '{activation}',
93
- 'zlink.instance_spot.claim.conflicts': '{claim}',
94
- 'zlink.instance_spot.takeovers': '{takeover}',
95
- 'zlink.location.store.errors': '{error}',
96
- 'zlink.location.owner_lease.renew.failures': '{failure}',
97
- 'zlink.observability.events.overflow': '{event}',
98
- 'zlink.host.relocation.blocked': '{operation}',
99
- 'zlink.host.shutdown.forced': '{operation}'
152
+ [METRIC_NAMES.StreamConnectionsOpened]: '{connection}',
153
+ [METRIC_NAMES.StreamConnectionsClosed]: '{connection}',
154
+ [METRIC_NAMES.MeshNodeChannelSelectionFailures]: '{failure}',
155
+ [METRIC_NAMES.MeshNodeRequestTimeouts]: '{request}',
156
+ [METRIC_NAMES.MeshNodeMessagesDropped]: '{message}',
157
+ [METRIC_NAMES.RelocationStarted]: '{relocation}',
158
+ [METRIC_NAMES.RelocationCompleted]: '{relocation}',
159
+ [METRIC_NAMES.RelocationCutoverTimeout]: '{fallback}',
160
+ [METRIC_NAMES.InstanceSpotActivations]: '{activation}',
161
+ [METRIC_NAMES.InstanceSpotClaimConflicts]: '{claim}',
162
+ [METRIC_NAMES.InstanceSpotTakeovers]: '{takeover}',
163
+ [METRIC_NAMES.LocationStoreErrors]: '{error}',
164
+ [METRIC_NAMES.LocationOwnerLeaseRenewFailures]: '{failure}',
165
+ [METRIC_NAMES.ObservabilityEventsOverflow]: '{event}',
166
+ [METRIC_NAMES.HostRelocationBlocked]: '{operation}',
167
+ [METRIC_NAMES.HostShutdownForced]: '{operation}'
100
168
  } as const);
101
169
 
102
170
  const UP_DOWN_COUNTERS = Object.freeze({
103
- 'zlink.stream.connections.active': '{connection}',
104
- 'zlink.spot.count': '{spot}',
105
- 'zlink.actor.count': '{actor}',
106
- 'zlink.mesh_node.requests.inflight': '{request}'
171
+ [METRIC_NAMES.StreamConnectionsActive]: '{connection}',
172
+ [METRIC_NAMES.SpotCount]: '{spot}',
173
+ [METRIC_NAMES.ActorCount]: '{actor}',
174
+ [METRIC_NAMES.MeshNodeRequestsInflight]: '{request}'
107
175
  } as const);
108
176
 
109
177
  const HISTOGRAMS = Object.freeze({
110
- 'zlink.mesh_node.request.duration': 's',
111
- 'zlink.relocation.duration': 's',
112
- 'zlink.relocation.bytes': 'By',
113
- 'zlink.relocation.interruption': 's',
114
- 'zlink.relocation.target_resume': 's',
115
- 'zlink.relocation.route_convergence': 's',
116
- 'zlink.instance_spot.activation.duration': 's',
117
- 'zlink.location.owner_lease.renew.lateness': 's',
118
- 'zlink.host.relocation.duration': 's',
119
- 'zlink.host.shutdown.duration': 's'
178
+ [METRIC_NAMES.MeshNodeRequestDuration]: 's',
179
+ [METRIC_NAMES.RelocationDuration]: 's',
180
+ [METRIC_NAMES.RelocationBytes]: 'By',
181
+ [METRIC_NAMES.RelocationInterruption]: 's',
182
+ [METRIC_NAMES.RelocationTargetResume]: 's',
183
+ [METRIC_NAMES.RelocationRouteConvergence]: 's',
184
+ [METRIC_NAMES.InstanceSpotActivationDuration]: 's',
185
+ [METRIC_NAMES.LocationOwnerLeaseRenewLateness]: 's',
186
+ [METRIC_NAMES.HostRelocationDuration]: 's',
187
+ [METRIC_NAMES.HostShutdownDuration]: 's'
120
188
  } as const);
121
189
 
122
190
  const OBSERVABLE_GAUGES = Object.freeze({
123
- 'zlink.mesh_node.peers.configured': '{peer}',
124
- 'zlink.mesh_node.peers.connected': '{peer}',
125
- 'zlink.mesh_node.peers.ready': '{peer}',
126
- 'zlink.mesh_node.channels.ready_members': '{member}',
127
- 'zlink.object.capacity.active': '{object}',
128
- 'zlink.object.capacity.reserved': '{object}',
129
- 'zlink.object.capacity.limit': '{object}',
130
- 'zlink.spot.type.capacity.active': '{spot}',
131
- 'zlink.spot.type.capacity.reserved': '{spot}',
132
- 'zlink.spot.type.capacity.limit': '{spot}',
133
- 'zlink.object.activation.active': '{activation}',
134
- 'zlink.object.activation.limit': '{activation}',
135
- 'zlink.instance_spot.pending.messages': '{message}',
136
- 'zlink.instance_spot.pending.bytes': 'By',
137
- 'zlink.host.state': '{runtime}',
138
- 'zlink.host.core_hwm.effective_budget': 'By',
139
- 'zlink.host.core_hwm.applied': 'By',
140
- 'zlink.host.core_hwm.accounted': 'By',
141
- 'zlink.host.core_hwm.completion_accounted': 'By',
142
- 'zlink.host.core_hwm.blocked_ratio': '{ppm}',
143
- 'zlink.host.application_job_queue.limit': '{job}',
144
- 'zlink.host.application_job_queue.jobs': '{job}',
145
- 'zlink.host.application_job_queue.capacity_waiters': '{waiter}',
146
- 'zlink.host.application_job_queue.pressure_state': '{state}',
147
- 'zlink.host.application_job_queue.pause_duration': 's'
191
+ [METRIC_NAMES.MeshNodePeersConfigured]: '{peer}',
192
+ [METRIC_NAMES.MeshNodePeersConnected]: '{peer}',
193
+ [METRIC_NAMES.MeshNodePeersReady]: '{peer}',
194
+ [METRIC_NAMES.MeshNodeChannelsReadyMembers]: '{member}',
195
+ [METRIC_NAMES.ObjectCapacityActive]: '{object}',
196
+ [METRIC_NAMES.ObjectCapacityReserved]: '{object}',
197
+ [METRIC_NAMES.ObjectCapacityLimit]: '{object}',
198
+ [METRIC_NAMES.SpotTypeCapacityActive]: '{spot}',
199
+ [METRIC_NAMES.SpotTypeCapacityReserved]: '{spot}',
200
+ [METRIC_NAMES.SpotTypeCapacityLimit]: '{spot}',
201
+ [METRIC_NAMES.ObjectActivationActive]: '{activation}',
202
+ [METRIC_NAMES.ObjectActivationLimit]: '{activation}',
203
+ [METRIC_NAMES.InstanceSpotPendingMessages]: '{message}',
204
+ [METRIC_NAMES.InstanceSpotPendingBytes]: 'By',
205
+ [METRIC_NAMES.HostState]: '{runtime}',
206
+ [METRIC_NAMES.HostCoreHwmEffectiveBudget]: 'By',
207
+ [METRIC_NAMES.HostCoreHwmApplied]: 'By',
208
+ [METRIC_NAMES.HostCoreHwmAccounted]: 'By',
209
+ [METRIC_NAMES.HostCoreHwmCompletionAccounted]: 'By',
210
+ [METRIC_NAMES.HostCoreHwmBlockedRatio]: '{ppm}',
211
+ [METRIC_NAMES.HostApplicationJobQueueLimit]: '{job}',
212
+ [METRIC_NAMES.HostApplicationJobQueueJobs]: '{job}',
213
+ [METRIC_NAMES.HostApplicationJobQueueCapacityWaiters]: '{waiter}',
214
+ [METRIC_NAMES.HostApplicationJobQueuePressureState]: '{state}',
215
+ [METRIC_NAMES.HostApplicationJobQueuePauseDuration]: 's'
148
216
  } as const);
149
217
 
150
218
  const OBSERVABLE_COUNTERS = Object.freeze({
151
- 'zlink.host.application_job_queue.capacity_waits': '{wait}',
152
- 'zlink.host.application_job_queue.capacity_wait_duration': 's',
153
- 'zlink.host.application_job_queue.pressure_transitions': '{transition}',
154
- 'zlink.host.application_job_queue.flow_state_config_failures': '{failure}'
219
+ [METRIC_NAMES.HostApplicationJobQueueCapacityWaits]: '{wait}',
220
+ [METRIC_NAMES.HostApplicationJobQueueCapacityWaitDuration]: 's',
221
+ [METRIC_NAMES.HostApplicationJobQueuePressureTransitions]: '{transition}',
222
+ [METRIC_NAMES.HostApplicationJobQueueFlowStateConfigFailures]: '{failure}'
155
223
  } as const);
156
224
 
157
225
  type CounterName = keyof typeof COUNTERS;
@@ -191,10 +259,10 @@ class MetricRegistry {
191
259
 
192
260
  private observe(name: string, result: ZLinkObservableResult): void {
193
261
  if (
194
- name === 'zlink.host.application_job_queue.pressure_state' ||
195
- name === 'zlink.host.application_job_queue.pressure_transitions' ||
196
- name === 'zlink.host.application_job_queue.pause_duration' ||
197
- name === 'zlink.host.application_job_queue.flow_state_config_failures'
262
+ name === METRIC_NAMES.HostApplicationJobQueuePressureState ||
263
+ name === METRIC_NAMES.HostApplicationJobQueuePressureTransitions ||
264
+ name === METRIC_NAMES.HostApplicationJobQueuePauseDuration ||
265
+ name === METRIC_NAMES.HostApplicationJobQueueFlowStateConfigFailures
198
266
  ) {
199
267
  for (const provider of this.applicationJobQueuePressures) {
200
268
  try {
@@ -218,7 +286,7 @@ class MetricRegistry {
218
286
  }
219
287
  return;
220
288
  }
221
- if (name === 'zlink.host.state') {
289
+ if (name === METRIC_NAMES.HostState) {
222
290
  for (const provider of this.hostStates) {
223
291
  try {
224
292
  result.observe(1, { state: provider() });
@@ -245,15 +313,15 @@ class MetricRegistry {
245
313
  snapshot: ZLinkApplicationJobQueuePressureMetricSnapshot,
246
314
  result: ZLinkObservableResult
247
315
  ): void {
248
- if (name === 'zlink.host.application_job_queue.pressure_state') {
316
+ if (name === METRIC_NAMES.HostApplicationJobQueuePressureState) {
249
317
  result.observe(1, { state: snapshot.pressureState });
250
- } else if (name === 'zlink.host.application_job_queue.pressure_transitions') {
318
+ } else if (name === METRIC_NAMES.HostApplicationJobQueuePressureTransitions) {
251
319
  result.observe(metricNumber(snapshot.runningTransitionCount), { state: 'running' });
252
320
  result.observe(metricNumber(snapshot.pausedTransitionCount), { state: 'paused' });
253
- } else if (name === 'zlink.host.application_job_queue.pause_duration') {
321
+ } else if (name === METRIC_NAMES.HostApplicationJobQueuePauseDuration) {
254
322
  result.observe(nonNegative(snapshot.currentPauseDurationSeconds), { state: 'current' });
255
323
  result.observe(nonNegative(snapshot.cumulativePauseDurationSeconds), { state: 'cumulative' });
256
- } else if (name === 'zlink.host.application_job_queue.flow_state_config_failures') {
324
+ } else if (name === METRIC_NAMES.HostApplicationJobQueueFlowStateConfigFailures) {
257
325
  result.observe(metricNumber(snapshot.flowStateConfigFailureCount));
258
326
  }
259
327
  }
@@ -265,30 +333,30 @@ class MetricRegistry {
265
333
  ): void {
266
334
  const core = snapshot.coreHwm;
267
335
  const jobs = snapshot.applicationJobQueue;
268
- if (name === 'zlink.host.core_hwm.effective_budget') {
336
+ if (name === METRIC_NAMES.HostCoreHwmEffectiveBudget) {
269
337
  result.observe(metricNumber(core.effectiveBudgetBytes));
270
- } else if (name === 'zlink.host.core_hwm.applied') {
338
+ } else if (name === METRIC_NAMES.HostCoreHwmApplied) {
271
339
  result.observe(metricNumber(core.totalAppliedHwmBytes));
272
- } else if (name === 'zlink.host.core_hwm.accounted') {
340
+ } else if (name === METRIC_NAMES.HostCoreHwmAccounted) {
273
341
  result.observe(metricNumber(core.currentAccountedBytes), { state: 'current' });
274
342
  result.observe(metricNumber(core.peakAccountedBytes), { state: 'peak' });
275
- } else if (name === 'zlink.host.core_hwm.completion_accounted') {
343
+ } else if (name === METRIC_NAMES.HostCoreHwmCompletionAccounted) {
276
344
  result.observe(metricNumber(core.completionCurrentAccountedBytes), { state: 'current' });
277
345
  result.observe(metricNumber(core.completionPeakAccountedBytes), { state: 'peak' });
278
- } else if (name === 'zlink.host.core_hwm.blocked_ratio') {
346
+ } else if (name === METRIC_NAMES.HostCoreHwmBlockedRatio) {
279
347
  result.observe(metricNumber(core.blockedRatioPpm));
280
- } else if (name === 'zlink.host.application_job_queue.limit') {
348
+ } else if (name === METRIC_NAMES.HostApplicationJobQueueLimit) {
281
349
  result.observe(metricNumber(jobs.effectiveMaxQueuedApplicationJobs));
282
- } else if (name === 'zlink.host.application_job_queue.jobs') {
350
+ } else if (name === METRIC_NAMES.HostApplicationJobQueueJobs) {
283
351
  result.observe(metricNumber(jobs.reservedSupplyPermits), { state: 'reserved' });
284
352
  result.observe(metricNumber(jobs.queuedApplicationJobs), { state: 'queued' });
285
353
  result.observe(metricNumber(jobs.permitsInUse), { state: 'in_use' });
286
354
  result.observe(metricNumber(jobs.peakPermitsInUse), { state: 'peak' });
287
- } else if (name === 'zlink.host.application_job_queue.capacity_waiters') {
355
+ } else if (name === METRIC_NAMES.HostApplicationJobQueueCapacityWaiters) {
288
356
  result.observe(metricNumber(jobs.capacityWaiters));
289
- } else if (name === 'zlink.host.application_job_queue.capacity_waits') {
357
+ } else if (name === METRIC_NAMES.HostApplicationJobQueueCapacityWaits) {
290
358
  result.observe(metricNumber(jobs.capacityWaitCount));
291
- } else if (name === 'zlink.host.application_job_queue.capacity_wait_duration') {
359
+ } else if (name === METRIC_NAMES.HostApplicationJobQueueCapacityWaitDuration) {
292
360
  result.observe(nonNegative(jobs.capacityWaitDurationSeconds));
293
361
  }
294
362
  }
@@ -300,13 +368,13 @@ class MetricRegistry {
300
368
  ): void {
301
369
  const mesh = { mesh_name: snapshot.meshName };
302
370
  const peer = { ...mesh, source: snapshot.source };
303
- if (name === 'zlink.mesh_node.peers.configured')
371
+ if (name === METRIC_NAMES.MeshNodePeersConfigured)
304
372
  result.observe(nonNegative(snapshot.configuredPeers), peer);
305
- else if (name === 'zlink.mesh_node.peers.connected')
373
+ else if (name === METRIC_NAMES.MeshNodePeersConnected)
306
374
  result.observe(nonNegative(snapshot.connectedPeers), peer);
307
- else if (name === 'zlink.mesh_node.peers.ready')
375
+ else if (name === METRIC_NAMES.MeshNodePeersReady)
308
376
  result.observe(nonNegative(snapshot.readyPeers), peer);
309
- else if (name === 'zlink.mesh_node.channels.ready_members') {
377
+ else if (name === METRIC_NAMES.MeshNodeChannelsReadyMembers) {
310
378
  for (const channel of snapshot.channels) {
311
379
  result.observe(nonNegative(channel.readyMembers), {
312
380
  ...mesh,
@@ -332,18 +400,18 @@ class MetricRegistry {
332
400
  stable_type: capacity.stableType
333
401
  });
334
402
  }
335
- } else if (name === 'zlink.object.activation.active') {
403
+ } else if (name === METRIC_NAMES.ObjectActivationActive) {
336
404
  result.observe(nonNegative(snapshot.activation.active), mesh);
337
- } else if (name === 'zlink.object.activation.limit') {
405
+ } else if (name === METRIC_NAMES.ObjectActivationLimit) {
338
406
  result.observe(nonNegative(snapshot.activation.limit), mesh);
339
- } else if (name === 'zlink.instance_spot.pending.messages') {
407
+ } else if (name === METRIC_NAMES.InstanceSpotPendingMessages) {
340
408
  for (const instance of snapshot.instanceSpots) {
341
409
  result.observe(nonNegative(instance.pendingMessages), {
342
410
  ...mesh,
343
411
  instance_spot_type: instance.instanceSpotType
344
412
  });
345
413
  }
346
- } else if (name === 'zlink.instance_spot.pending.bytes') {
414
+ } else if (name === METRIC_NAMES.InstanceSpotPendingBytes) {
347
415
  for (const instance of snapshot.instanceSpots) {
348
416
  result.observe(nonNegative(instance.pendingBytes), {
349
417
  ...mesh,
@@ -429,11 +497,11 @@ export class ZLinkRuntimeMetrics {
429
497
  }
430
498
 
431
499
  recordLocationStoreError(operation: string): void {
432
- this.count('zlink.location.store.errors', 1, { operation });
500
+ this.count(METRIC_NAMES.LocationStoreErrors, 1, { operation });
433
501
  }
434
502
 
435
503
  recordOwnerLeaseRenewFailure(scopeKind: 'mesh' | 'channel', scopeName: string): void {
436
- this.count('zlink.location.owner_lease.renew.failures', 1, {
504
+ this.count(METRIC_NAMES.LocationOwnerLeaseRenewFailures, 1, {
437
505
  scope_kind: scopeKind,
438
506
  scope_name: scopeName
439
507
  });
@@ -444,14 +512,14 @@ export class ZLinkRuntimeMetrics {
444
512
  scopeKind: 'mesh' | 'channel',
445
513
  scopeName: string
446
514
  ): void {
447
- this.duration('zlink.location.owner_lease.renew.lateness', seconds, {
515
+ this.duration(METRIC_NAMES.LocationOwnerLeaseRenewLateness, seconds, {
448
516
  scope_kind: scopeKind,
449
517
  scope_name: scopeName
450
518
  });
451
519
  }
452
520
 
453
521
  recordChannelSelectionFailure(meshName: string, channelName: string, reason: string): void {
454
- this.count('zlink.mesh_node.channel.selection_failures', 1, {
522
+ this.count(METRIC_NAMES.MeshNodeChannelSelectionFailures, 1, {
455
523
  mesh_name: meshName,
456
524
  channel_name: channelName,
457
525
  reason
@@ -464,7 +532,7 @@ export class ZLinkRuntimeMetrics {
464
532
  messageKind: string,
465
533
  reason: string
466
534
  ): void {
467
- this.count('zlink.mesh_node.messages.dropped', 1, {
535
+ this.count(METRIC_NAMES.MeshNodeMessagesDropped, 1, {
468
536
  mesh_name: meshName,
469
537
  surface,
470
538
  message_kind: messageKind,
@@ -487,10 +555,10 @@ export class ZLinkRuntimeMetrics {
487
555
  instance_spot_type: instanceSpotType,
488
556
  outcome
489
557
  };
490
- this.count('zlink.instance_spot.activations', 1, attributes);
558
+ this.count(METRIC_NAMES.InstanceSpotActivations, 1, attributes);
491
559
  this.duration(
492
- 'zlink.instance_spot.activation.duration',
493
- Number(process.hrtime.bigint() - started) / 1e9,
560
+ METRIC_NAMES.InstanceSpotActivationDuration,
561
+ Number(process.hrtime.bigint() - started) / NANOSECONDS_PER_SECOND,
494
562
  attributes
495
563
  );
496
564
  }
@@ -505,20 +573,20 @@ export class ZLinkRuntimeMetrics {
505
573
  const started = process.hrtime.bigint();
506
574
  const startAttributes = { mesh_name: meshName, object_kind: objectKind, policy };
507
575
  let completed = false;
508
- this.count('zlink.relocation.started', 1, startAttributes);
576
+ this.count(METRIC_NAMES.RelocationStarted, 1, startAttributes);
509
577
  return {
510
578
  recordBytes: (bytes: number): void => {
511
579
  if (completed || bytes < 0) return;
512
- this.histogram('zlink.relocation.bytes', bytes, 'By', startAttributes);
580
+ this.histogram(METRIC_NAMES.RelocationBytes, bytes, 'By', startAttributes);
513
581
  },
514
582
  complete: (outcome: string): void => {
515
583
  if (completed) return;
516
584
  completed = true;
517
585
  const terminal = { ...startAttributes, outcome };
518
- this.count('zlink.relocation.completed', 1, terminal);
586
+ this.count(METRIC_NAMES.RelocationCompleted, 1, terminal);
519
587
  this.duration(
520
- 'zlink.relocation.duration',
521
- Number(process.hrtime.bigint() - started) / 1e9,
588
+ METRIC_NAMES.RelocationDuration,
589
+ Number(process.hrtime.bigint() - started) / NANOSECONDS_PER_SECOND,
522
590
  terminal
523
591
  );
524
592
  }
@@ -530,7 +598,7 @@ export class ZLinkRuntimeMetrics {
530
598
  instanceSpotType: string,
531
599
  reason: string
532
600
  ): void {
533
- this.count('zlink.instance_spot.claim.conflicts', 1, {
601
+ this.count(METRIC_NAMES.InstanceSpotClaimConflicts, 1, {
534
602
  mesh_name: meshName,
535
603
  instance_spot_type: instanceSpotType,
536
604
  reason
@@ -538,7 +606,7 @@ export class ZLinkRuntimeMetrics {
538
606
  }
539
607
 
540
608
  recordInstanceSpotTakeover(meshName: string, instanceSpotType: string, outcome: string): void {
541
- this.count('zlink.instance_spot.takeovers', 1, {
609
+ this.count(METRIC_NAMES.InstanceSpotTakeovers, 1, {
542
610
  mesh_name: meshName,
543
611
  instance_spot_type: instanceSpotType,
544
612
  outcome
@@ -559,21 +627,21 @@ export class ZLinkRequestMetricOperation {
559
627
  private readonly meshName: string,
560
628
  private readonly surface: 'node' | 'channel' | 'spot' | 'instance_spot' | 'actor'
561
629
  ) {
562
- metrics.change('zlink.mesh_node.requests.inflight', 1, this.baseAttributes());
630
+ metrics.change(METRIC_NAMES.MeshNodeRequestsInflight, 1, this.baseAttributes());
563
631
  }
564
632
 
565
633
  complete(outcome: string): void {
566
634
  if (this.completed) return;
567
635
  this.completed = true;
568
636
  const attributes = this.baseAttributes();
569
- this.metrics.change('zlink.mesh_node.requests.inflight', -1, attributes);
637
+ this.metrics.change(METRIC_NAMES.MeshNodeRequestsInflight, -1, attributes);
570
638
  this.metrics.duration(
571
- 'zlink.mesh_node.request.duration',
572
- Number(process.hrtime.bigint() - this.started) / 1e9,
639
+ METRIC_NAMES.MeshNodeRequestDuration,
640
+ Number(process.hrtime.bigint() - this.started) / NANOSECONDS_PER_SECOND,
573
641
  { ...attributes, outcome }
574
642
  );
575
643
  if (outcome === 'timed_out') {
576
- this.metrics.count('zlink.mesh_node.request.timeouts', 1, attributes);
644
+ this.metrics.count(METRIC_NAMES.MeshNodeRequestTimeouts, 1, attributes);
577
645
  }
578
646
  }
579
647
 
@@ -1,3 +1,4 @@
1
+ import { shouldCompactBackingArray } from '../admission';
1
2
  import type { ZLinkObservationLoss, ZLinkObservedStatus } from '../../contracts';
2
3
 
3
4
  export const ZLINK_DEFAULT_TERMINAL_OBSERVATION_CAPACITY = 64;
@@ -291,7 +292,7 @@ export class RuntimeEventQueue<T>
291
292
  if (this.terminalCount === 0) {
292
293
  this.terminalFifo.length = 0;
293
294
  this.terminalHead = 0;
294
- } else if (this.terminalHead >= 1024 && this.terminalHead * 2 >= this.terminalFifo.length) {
295
+ } else if (shouldCompactBackingArray(this.terminalHead, this.terminalFifo.length)) {
295
296
  this.terminalFifo.splice(0, this.terminalHead);
296
297
  this.terminalHead = 0;
297
298
  }
@@ -333,7 +334,7 @@ export class RuntimeEventQueue<T>
333
334
  if (this.waitersCount === 0) {
334
335
  this.waiters.length = 0;
335
336
  this.waitersHead = 0;
336
- } else if (this.waitersHead >= 1024 && this.waitersHead * 2 >= this.waiters.length) {
337
+ } else if (shouldCompactBackingArray(this.waitersHead, this.waiters.length)) {
337
338
  this.waiters.splice(0, this.waitersHead);
338
339
  this.waitersHead = 0;
339
340
  }