@cadenza.io/service 2.17.77 → 2.17.79

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.
@@ -813,6 +813,18 @@ function normalizeServiceRegistryInsertResult(tableName, ctx, queryData, rawResu
813
813
  }
814
814
  return result;
815
815
  }
816
+ function shouldTraceIotDbRegistryPath(localServiceName, targetServiceName) {
817
+ return targetServiceName === "IotDbService" && localServiceName !== "IotDbService";
818
+ }
819
+ function summarizeTransportDescriptors(transports) {
820
+ return transports.map((transport) => ({
821
+ uuid: transport.uuid,
822
+ serviceInstanceId: transport.serviceInstanceId,
823
+ role: transport.role,
824
+ origin: transport.origin,
825
+ protocols: transport.protocols
826
+ }));
827
+ }
816
828
  function resolveServiceRegistryInsertTask(tableName, queryData = {}, options = {}) {
817
829
  const remoteInsertTask = CadenzaService.createCadenzaDBInsertTask(
818
830
  tableName,
@@ -1203,6 +1215,21 @@ var ServiceRegistry = class _ServiceRegistry {
1203
1215
  trackedInstance.acceptingWork = snapshot.acceptingWork;
1204
1216
  trackedInstance.reportedAt = trackedInstance.reportedAt ?? (/* @__PURE__ */ new Date()).toISOString();
1205
1217
  }
1218
+ if (shouldTraceIotDbRegistryPath(this.serviceName, serviceName)) {
1219
+ console.log("[CADENZA_REGISTRY_DEBUG] handle_instance_update", {
1220
+ localServiceName: this.serviceName,
1221
+ localServiceInstanceId: this.serviceInstanceId,
1222
+ targetServiceName: serviceName,
1223
+ targetServiceInstanceId: uuid7,
1224
+ existingInstance: !!existing,
1225
+ deleted,
1226
+ remoteInterest: this.deputies.has(serviceName) || this.remoteIntents.has(serviceName) || this.remoteSignals.has(serviceName),
1227
+ hasDeputies: this.deputies.has(serviceName),
1228
+ hasRemoteIntents: this.remoteIntents.has(serviceName),
1229
+ hasRemoteSignals: this.remoteSignals.has(serviceName),
1230
+ transports: trackedInstance ? summarizeTransportDescriptors(trackedInstance.transports) : []
1231
+ });
1232
+ }
1206
1233
  if (!serviceInstance.isBootstrapPlaceholder) {
1207
1234
  this.reconcileBootstrapPlaceholderInstance(serviceName, uuid7, emit);
1208
1235
  }
@@ -1258,6 +1285,27 @@ var ServiceRegistry = class _ServiceRegistry {
1258
1285
  break;
1259
1286
  }
1260
1287
  }
1288
+ if (shouldTraceIotDbRegistryPath(
1289
+ this.serviceName,
1290
+ ownerInstance?.serviceName ?? ctx.serviceName ?? void 0
1291
+ )) {
1292
+ console.log("[CADENZA_REGISTRY_DEBUG] handle_transport_update", {
1293
+ localServiceName: this.serviceName,
1294
+ localServiceInstanceId: this.serviceInstanceId,
1295
+ transport: {
1296
+ uuid: transport.uuid,
1297
+ serviceInstanceId: transport.serviceInstanceId,
1298
+ role: transport.role,
1299
+ origin: transport.origin,
1300
+ protocols: transport.protocols,
1301
+ deleted: transport.deleted
1302
+ },
1303
+ ownerFound: !!ownerInstance,
1304
+ ownerServiceName: ownerInstance?.serviceName,
1305
+ ownerInstanceId: ownerInstance?.uuid,
1306
+ ownerTransports: ownerInstance ? summarizeTransportDescriptors(ownerInstance.transports) : []
1307
+ });
1308
+ }
1261
1309
  if (!ownerInstance) {
1262
1310
  return false;
1263
1311
  }
@@ -1313,12 +1361,29 @@ var ServiceRegistry = class _ServiceRegistry {
1313
1361
  "Tracks remote dependency instances for runtime heartbeat monitoring."
1314
1362
  ).doOn("meta.service_registry.dependee_registered");
1315
1363
  const normalizeServiceInstancesFromSync = (ctx) => this.normalizeServiceInstancesFromSync(ctx);
1364
+ const getLocalTraceContext = () => ({
1365
+ localServiceName: this.serviceName,
1366
+ localServiceInstanceId: this.serviceInstanceId
1367
+ });
1316
1368
  CadenzaService.createMetaTask("Split service instances", function* (ctx) {
1317
1369
  const serviceInstances = normalizeServiceInstancesFromSync(ctx);
1318
1370
  if (serviceInstances.length === 0) {
1319
1371
  return;
1320
1372
  }
1321
1373
  for (const serviceInstance of serviceInstances) {
1374
+ const { localServiceName, localServiceInstanceId } = getLocalTraceContext();
1375
+ if (shouldTraceIotDbRegistryPath(
1376
+ localServiceName,
1377
+ serviceInstance.serviceName
1378
+ )) {
1379
+ console.log("[CADENZA_REGISTRY_DEBUG] split_service_instance", {
1380
+ localServiceName,
1381
+ localServiceInstanceId,
1382
+ targetServiceName: serviceInstance.serviceName,
1383
+ targetServiceInstanceId: serviceInstance.uuid,
1384
+ transports: summarizeTransportDescriptors(serviceInstance.transports)
1385
+ });
1386
+ }
1322
1387
  yield { serviceInstance };
1323
1388
  }
1324
1389
  }).doOn(
@@ -1576,6 +1641,21 @@ var ServiceRegistry = class _ServiceRegistry {
1576
1641
  const serviceInstances = this.normalizeServiceInstancesFromSync(
1577
1642
  inquiryResult
1578
1643
  );
1644
+ if (shouldTraceIotDbRegistryPath(this.serviceName, "IotDbService")) {
1645
+ const tracedInstances = serviceInstances.filter((instance) => instance.serviceName === "IotDbService").map((instance) => ({
1646
+ uuid: instance.uuid,
1647
+ isActive: instance.isActive,
1648
+ isNonResponsive: instance.isNonResponsive,
1649
+ isBlocked: instance.isBlocked,
1650
+ transports: summarizeTransportDescriptors(instance.transports)
1651
+ }));
1652
+ console.log("[CADENZA_REGISTRY_DEBUG] full_sync_instances", {
1653
+ localServiceName: this.serviceName,
1654
+ localServiceInstanceId: this.serviceInstanceId,
1655
+ totalServiceInstances: serviceInstances.length,
1656
+ tracedInstances
1657
+ });
1658
+ }
1579
1659
  return {
1580
1660
  ...ctx,
1581
1661
  signalToTaskMaps,
@@ -1672,6 +1752,44 @@ var ServiceRegistry = class _ServiceRegistry {
1672
1752
  let retries = __retries ?? 0;
1673
1753
  let triedInstances = __triedInstances ?? [];
1674
1754
  const preferredRole = this.getRoutingTransportRole();
1755
+ const allInstances = this.instances.get(__serviceName) ?? [];
1756
+ const candidateDiagnostics = shouldTraceIotDbRegistryPath(
1757
+ this.serviceName,
1758
+ __serviceName ?? void 0
1759
+ ) ? allInstances.map((instance) => ({
1760
+ uuid: instance.uuid,
1761
+ isActive: instance.isActive,
1762
+ isNonResponsive: instance.isNonResponsive,
1763
+ isBlocked: instance.isBlocked,
1764
+ isFrontend: instance.isFrontend,
1765
+ transports: summarizeTransportDescriptors(instance.transports),
1766
+ selectedTransport: instance.isFrontend ? null : this.selectTransportForInstance(
1767
+ instance,
1768
+ context,
1769
+ preferredRole
1770
+ ) ? {
1771
+ uuid: this.selectTransportForInstance(
1772
+ instance,
1773
+ context,
1774
+ preferredRole
1775
+ ).uuid,
1776
+ role: this.selectTransportForInstance(
1777
+ instance,
1778
+ context,
1779
+ preferredRole
1780
+ ).role,
1781
+ origin: this.selectTransportForInstance(
1782
+ instance,
1783
+ context,
1784
+ preferredRole
1785
+ ).origin,
1786
+ protocols: this.selectTransportForInstance(
1787
+ instance,
1788
+ context,
1789
+ preferredRole
1790
+ ).protocols
1791
+ } : null
1792
+ })) : void 0;
1675
1793
  const instances = this.instances.get(__serviceName)?.filter((instance) => {
1676
1794
  if (targetServiceInstanceId && instance.uuid !== targetServiceInstanceId) {
1677
1795
  return false;
@@ -1704,6 +1822,20 @@ var ServiceRegistry = class _ServiceRegistry {
1704
1822
  }
1705
1823
  return (a.numberOfRunningGraphs ?? 0) - (b.numberOfRunningGraphs ?? 0);
1706
1824
  });
1825
+ if (candidateDiagnostics) {
1826
+ console.log("[CADENZA_REGISTRY_DEBUG] get_balanced_instance", {
1827
+ localServiceName: this.serviceName,
1828
+ localServiceInstanceId: this.serviceInstanceId,
1829
+ targetServiceName: __serviceName,
1830
+ preferredRole,
1831
+ useSocket: this.useSocket,
1832
+ targetServiceInstanceId,
1833
+ retries,
1834
+ triedInstances,
1835
+ candidateDiagnostics,
1836
+ filteredInstanceIds: instances?.map((instance) => instance.uuid) ?? []
1837
+ });
1838
+ }
1707
1839
  if (!instances || instances.length === 0 || retries > this.retryCount) {
1708
1840
  context.errored = true;
1709
1841
  context.__error = this.isFrontend && preferredRole === "public" ? `No public transport available for ${__serviceName}.` : `No routeable ${preferredRole} transport available for ${__serviceName}. Retries: ${retries}.`;
@@ -2830,6 +2962,27 @@ var ServiceRegistry = class _ServiceRegistry {
2830
2962
  instance,
2831
2963
  this.useSocket ? "socket" : "rest"
2832
2964
  );
2965
+ if (shouldTraceIotDbRegistryPath(this.serviceName, instance.serviceName)) {
2966
+ console.log("[CADENZA_REGISTRY_DEBUG] ensure_dependee_client_for_instance", {
2967
+ localServiceName: this.serviceName,
2968
+ localServiceInstanceId: this.serviceInstanceId,
2969
+ targetServiceName: instance.serviceName,
2970
+ targetServiceInstanceId: instance.uuid,
2971
+ useSocket: this.useSocket,
2972
+ routeableRole: this.getRoutingTransportRole(),
2973
+ hasDeputies: this.deputies.has(instance.serviceName),
2974
+ hasRemoteIntents: this.remoteIntents.has(instance.serviceName),
2975
+ hasRemoteSignals: this.remoteSignals.has(instance.serviceName),
2976
+ clientCreatedTransportIds: instance.clientCreatedTransportIds ?? [],
2977
+ transports: summarizeTransportDescriptors(instance.transports),
2978
+ selectedTransport: transport ? {
2979
+ uuid: transport.uuid,
2980
+ role: transport.role,
2981
+ origin: transport.origin,
2982
+ protocols: transport.protocols
2983
+ } : null
2984
+ });
2985
+ }
2833
2986
  if (!transport || this.hasTransportClientCreated(instance, transport.uuid)) {
2834
2987
  return false;
2835
2988
  }