@rocicorp/zero 0.20.2025050400 → 0.20.2025050600

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 (140) hide show
  1. package/out/analyze-query/src/bin-analyze.js +10 -3
  2. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  3. package/out/{chunk-KOXC55U7.js → chunk-EBZYAQDK.js} +14 -5
  4. package/out/chunk-EBZYAQDK.js.map +7 -0
  5. package/out/{chunk-54ZZCBOP.js → chunk-N44AEZOH.js} +2 -2
  6. package/out/{chunk-IFAC3PDK.js → chunk-VA2YVVTK.js} +58 -9
  7. package/out/{chunk-IFAC3PDK.js.map → chunk-VA2YVVTK.js.map} +2 -2
  8. package/out/{inspector-Z55GQ5JV.js → inspector-GCX7QH7K.js} +3 -3
  9. package/out/react.js +1 -1
  10. package/out/solid.js +3 -3
  11. package/out/z2s/src/compiler.d.ts.map +1 -1
  12. package/out/z2s/src/compiler.js +5 -1
  13. package/out/z2s/src/compiler.js.map +1 -1
  14. package/out/zero-cache/src/config/network.d.ts +5 -0
  15. package/out/zero-cache/src/config/network.d.ts.map +1 -0
  16. package/out/zero-cache/src/config/network.js +47 -0
  17. package/out/zero-cache/src/config/network.js.map +1 -0
  18. package/out/zero-cache/src/config/normalize.d.ts +29 -0
  19. package/out/zero-cache/src/config/normalize.d.ts.map +1 -0
  20. package/out/zero-cache/src/config/normalize.js +73 -0
  21. package/out/zero-cache/src/config/normalize.js.map +1 -0
  22. package/out/zero-cache/src/config/zero-config.d.ts +262 -99
  23. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  24. package/out/zero-cache/src/config/zero-config.js +64 -32
  25. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  26. package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
  27. package/out/zero-cache/src/server/change-streamer.js +19 -4
  28. package/out/zero-cache/src/server/change-streamer.js.map +1 -1
  29. package/out/zero-cache/src/server/main.d.ts +1 -1
  30. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  31. package/out/zero-cache/src/server/main.js +14 -26
  32. package/out/zero-cache/src/server/main.js.map +1 -1
  33. package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
  34. package/out/zero-cache/src/server/replicator.js +15 -4
  35. package/out/zero-cache/src/server/replicator.js.map +1 -1
  36. package/out/zero-cache/src/server/runner/run-worker.d.ts +7 -0
  37. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -1
  38. package/out/zero-cache/src/server/runner/run-worker.js +34 -73
  39. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
  40. package/out/zero-cache/src/server/runner/runtime.d.ts.map +1 -1
  41. package/out/zero-cache/src/server/runner/runtime.js +12 -1
  42. package/out/zero-cache/src/server/runner/runtime.js.map +1 -1
  43. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts +2 -9
  44. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -1
  45. package/out/zero-cache/src/server/runner/zero-dispatcher.js +9 -46
  46. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -1
  47. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  48. package/out/zero-cache/src/server/syncer.js +4 -2
  49. package/out/zero-cache/src/server/syncer.js.map +1 -1
  50. package/out/zero-cache/src/server/worker-dispatcher.d.ts +16 -0
  51. package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +1 -0
  52. package/out/zero-cache/src/server/worker-dispatcher.js +99 -0
  53. package/out/zero-cache/src/server/worker-dispatcher.js.map +1 -0
  54. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  55. package/out/zero-cache/src/services/change-source/pg/change-source.js +12 -6
  56. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  57. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +6 -3
  58. package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
  59. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +31 -16
  60. package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
  61. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
  62. package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
  63. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +4 -15
  64. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  65. package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +1 -1
  66. package/out/zero-cache/src/services/change-streamer/schema/init.js +8 -0
  67. package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
  68. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +2 -1
  69. package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
  70. package/out/zero-cache/src/services/change-streamer/schema/tables.js +19 -13
  71. package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
  72. package/out/zero-cache/src/services/change-streamer/storer.d.ts +1 -1
  73. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  74. package/out/zero-cache/src/services/change-streamer/storer.js +6 -2
  75. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  76. package/out/zero-cache/src/services/http-service.d.ts +5 -2
  77. package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
  78. package/out/zero-cache/src/services/http-service.js +27 -11
  79. package/out/zero-cache/src/services/http-service.js.map +1 -1
  80. package/out/zero-cache/src/services/statz.d.ts +1 -1
  81. package/out/zero-cache/src/services/statz.d.ts.map +1 -1
  82. package/out/zero-cache/src/services/statz.js +6 -7
  83. package/out/zero-cache/src/services/statz.js.map +1 -1
  84. package/out/zero-cache/src/types/error-for-client.d.ts +1 -1
  85. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  86. package/out/zero-cache/src/types/pg.js +23 -21
  87. package/out/zero-cache/src/types/pg.js.map +1 -1
  88. package/out/zero-cache/src/{services/dispatcher → types}/websocket-handoff.d.ts +18 -2
  89. package/out/zero-cache/src/types/websocket-handoff.d.ts.map +1 -0
  90. package/out/zero-cache/src/{services/dispatcher → types}/websocket-handoff.js +14 -6
  91. package/out/zero-cache/src/types/websocket-handoff.js.map +1 -0
  92. package/out/zero-cache/src/{services/dispatcher → workers}/connect-params.d.ts +1 -1
  93. package/out/zero-cache/src/workers/connect-params.d.ts.map +1 -0
  94. package/out/zero-cache/src/{services/dispatcher → workers}/connect-params.js +3 -3
  95. package/out/zero-cache/src/workers/connect-params.js.map +1 -0
  96. package/out/zero-cache/src/workers/connection.d.ts +1 -1
  97. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  98. package/out/zero-cache/src/workers/connection.js +8 -3
  99. package/out/zero-cache/src/workers/connection.js.map +1 -1
  100. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts +1 -1
  101. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  102. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  103. package/out/zero-cache/src/workers/syncer.js +1 -1
  104. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  105. package/out/zero-protocol/src/ast.d.ts +2 -2
  106. package/out/zero-protocol/src/ast.d.ts.map +1 -1
  107. package/out/zero-protocol/src/ast.js +3 -1
  108. package/out/zero-protocol/src/ast.js.map +1 -1
  109. package/out/zero.js +3 -3
  110. package/out/zql/src/ivm/constraint.d.ts +24 -0
  111. package/out/zql/src/ivm/constraint.d.ts.map +1 -1
  112. package/out/zql/src/ivm/constraint.js +65 -0
  113. package/out/zql/src/ivm/constraint.js.map +1 -1
  114. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  115. package/out/zql/src/ivm/memory-source.js +10 -5
  116. package/out/zql/src/ivm/memory-source.js.map +1 -1
  117. package/out/zql/src/query/query-impl.d.ts +1 -1
  118. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  119. package/out/zql/src/query/query-impl.js +5 -3
  120. package/out/zql/src/query/query-impl.js.map +1 -1
  121. package/package.json +1 -1
  122. package/out/chunk-KOXC55U7.js.map +0 -7
  123. package/out/zero-cache/src/server/runner/config.d.ts +0 -368
  124. package/out/zero-cache/src/server/runner/config.d.ts.map +0 -1
  125. package/out/zero-cache/src/server/runner/config.js +0 -103
  126. package/out/zero-cache/src/server/runner/config.js.map +0 -1
  127. package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +0 -1
  128. package/out/zero-cache/src/services/dispatcher/connect-params.js.map +0 -1
  129. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts +0 -15
  130. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +0 -1
  131. package/out/zero-cache/src/services/dispatcher/dispatcher.js +0 -64
  132. package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +0 -1
  133. package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts.map +0 -1
  134. package/out/zero-cache/src/services/dispatcher/websocket-handoff.js.map +0 -1
  135. package/out/zero-cache/src/types/timeout.d.ts +0 -11
  136. package/out/zero-cache/src/types/timeout.d.ts.map +0 -1
  137. package/out/zero-cache/src/types/timeout.js +0 -23
  138. package/out/zero-cache/src/types/timeout.js.map +0 -1
  139. /package/out/{chunk-54ZZCBOP.js.map → chunk-N44AEZOH.js.map} +0 -0
  140. /package/out/{inspector-Z55GQ5JV.js.map → inspector-GCX7QH7K.js.map} +0 -0
@@ -1,3 +1,3 @@
1
1
  import { type Worker } from '../types/processes.ts';
2
- export default function runWorker(parent: Worker | null, env: NodeJS.ProcessEnv): Promise<void>;
2
+ export default function runWorker(parent: Worker, env: NodeJS.ProcessEnv): Promise<void>;
3
3
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/main.ts"],"names":[],"mappings":"AAqBA,OAAO,EAIL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAW/B,wBAA8B,SAAS,CACrC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CA2Lf"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/main.ts"],"names":[],"mappings":"AAkBA,OAAO,EAIL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAY/B,wBAA8B,SAAS,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAwLf"}
@@ -2,10 +2,8 @@ import { resolver } from '@rocicorp/resolver';
2
2
  import { availableParallelism } from 'node:os';
3
3
  import path from 'node:path';
4
4
  import { must } from "../../../shared/src/must.js";
5
+ import { assertNormalized } from "../config/normalize.js";
5
6
  import { getZeroConfig } from "../config/zero-config.js";
6
- import { getSubscriberContext } from "../services/change-streamer/change-streamer-http.js";
7
- import { Dispatcher } from "../services/dispatcher/dispatcher.js";
8
- import { installWebSocketHandoff } from "../services/dispatcher/websocket-handoff.js";
9
7
  import { exitAfter, ProcessManager, runUntilKilled, } from "../services/life-cycle.js";
10
8
  import { restoreReplica, startReplicaBackupProcess, } from "../services/litestream/commands.js";
11
9
  import { initViewSyncerSchema } from "../services/view-syncer/schema/init.js";
@@ -14,14 +12,14 @@ import { childWorker, parentWorker, singleProcessMode, } from "../types/processe
14
12
  import { getShardID } from "../types/shards.js";
15
13
  import { createNotifierFrom, handleSubscriptionsFrom, subscribeTo, } from "../workers/replicator.js";
16
14
  import { createLogContext } from "./logging.js";
15
+ import { WorkerDispatcher } from "./worker-dispatcher.js";
17
16
  const clientConnectionBifurcated = false;
18
17
  export default async function runWorker(parent, env) {
19
18
  const startMs = Date.now();
20
19
  const config = getZeroConfig(env);
20
+ assertNormalized(config);
21
21
  const lc = createLogContext(config, { worker: 'dispatcher' });
22
- const taskID = must(config.taskID, `main must set --task-id`);
23
- const shard = getShardID(config);
24
- const processes = new ProcessManager(lc, parent ?? process);
22
+ const processes = new ProcessManager(lc, parent);
25
23
  const numSyncers = config.numSyncWorkers !== undefined
26
24
  ? config.numSyncWorkers
27
25
  : // Reserve 1 core for the replicator. The change-streamer is not CPU heavy.
@@ -47,16 +45,17 @@ export default async function runWorker(parent, env) {
47
45
  const name = path.basename(modulePath) + (id ? ` (${id})` : '');
48
46
  return processes.addWorker(worker, type, name);
49
47
  }
50
- const { backupURL } = config.litestream;
48
+ const shard = getShardID(config);
49
+ const { taskID, changeStreamer: { mode: changeStreamerMode }, litestream: { backupURL, restoreDurationMsEstimate }, } = config;
51
50
  const litestream = backupURL?.length;
52
- const runChangeStreamer = !config.changeStreamerURI;
51
+ const runChangeStreamer = changeStreamerMode !== 'discover';
53
52
  if (litestream) {
54
53
  // For the replication-manager (i.e. authoritative replica), only attempt
55
54
  // a restore once, allowing the backup to be absent.
56
55
  // For view-syncers, attempt a restore for up to 10 times over 30 seconds.
57
56
  try {
58
57
  const restoreElapsedMs = await restoreReplica(lc, config, runChangeStreamer ? 1 : 10, 3000);
59
- if (!config.litestream.restoreDurationMsEstimate && restoreElapsedMs) {
58
+ if (!restoreDurationMsEstimate && restoreElapsedMs) {
60
59
  internalFlags.push('--litestream-restore-duration-ms-estimate', String(restoreElapsedMs));
61
60
  }
62
61
  }
@@ -78,13 +77,13 @@ export default async function runWorker(parent, env) {
78
77
  const { promise: changeStreamerReady, resolve } = resolver();
79
78
  const changeStreamer = runChangeStreamer
80
79
  ? loadWorker('./server/change-streamer.ts', 'supporting').once('message', resolve)
81
- : resolve();
80
+ : (resolve() ?? undefined);
82
81
  if (numSyncers) {
83
82
  // Technically, setting up the CVR DB schema is the responsibility of the Syncer,
84
83
  // but it is done here in the main thread because it is wasteful to have all of
85
84
  // the Syncers attempt the migration in parallel.
86
- const { cvr, upstream } = config;
87
- const cvrDB = pgClient(lc, cvr.db ?? upstream.db);
85
+ const { cvr } = config;
86
+ const cvrDB = pgClient(lc, cvr.db);
88
87
  await initViewSyncerSchema(lc, cvrDB, shard);
89
88
  void cvrDB.end();
90
89
  }
@@ -124,20 +123,9 @@ export default async function runWorker(parent, env) {
124
123
  await processes.allWorkersReady();
125
124
  clearInterval(logWaiting);
126
125
  lc.info?.(`all workers ready (${Date.now() - startMs} ms)`);
127
- const mainServices = [];
128
- const { port } = config;
129
- if (numSyncers) {
130
- mainServices.push(new Dispatcher(config, lc, taskID, parent, syncers, mutator, { port }));
131
- }
132
- else if (changeStreamer && parent) {
133
- // When running as the replication-manager, the dispatcher process
134
- // hands off websockets from the main (tenant) dispatcher to the
135
- // change-streamer process.
136
- installWebSocketHandoff(lc, req => ({ payload: getSubscriberContext(req), receiver: changeStreamer }), parent);
137
- }
138
- parent?.send(['ready', { ready: true }]);
126
+ parent.send(['ready', { ready: true }]);
139
127
  try {
140
- await runUntilKilled(lc, parent ?? process, ...mainServices);
128
+ await runUntilKilled(lc, parent, new WorkerDispatcher(lc, taskID, parent, syncers, mutator, changeStreamer));
141
129
  }
142
130
  catch (err) {
143
131
  processes.logErrorAndExit(err, 'dispatcher');
@@ -145,6 +133,6 @@ export default async function runWorker(parent, env) {
145
133
  await processes.done();
146
134
  }
147
135
  if (!singleProcessMode()) {
148
- void exitAfter(() => runWorker(parentWorker, process.env));
136
+ void exitAfter(() => runWorker(must(parentWorker), process.env));
149
137
  }
150
138
  //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/main.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/replicator.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAQ/B,wBAA8B,SAAS,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,CAoCf"}
1
+ {"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/replicator.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAS/B,wBAA8B,SAAS,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
@@ -2,25 +2,36 @@ import { pid } from 'node:process';
2
2
  import { assert } from "../../../shared/src/asserts.js";
3
3
  import { must } from "../../../shared/src/must.js";
4
4
  import * as v from "../../../shared/src/valita.js";
5
+ import { assertNormalized } from "../config/normalize.js";
5
6
  import { getZeroConfig } from "../config/zero-config.js";
6
7
  import { ChangeStreamerHttpClient } from "../services/change-streamer/change-streamer-http.js";
7
8
  import { exitAfter, runUntilKilled } from "../services/life-cycle.js";
8
9
  import { ReplicatorService, } from "../services/replicator/replicator.js";
10
+ import { pgClient } from "../types/pg.js";
9
11
  import { parentWorker, singleProcessMode, } from "../types/processes.js";
12
+ import { getShardConfig } from "../types/shards.js";
10
13
  import { replicaFileModeSchema, setUpMessageHandlers, setupReplica, } from "../workers/replicator.js";
11
14
  import { createLogContext } from "./logging.js";
12
15
  export default async function runWorker(parent, env, ...args) {
13
16
  assert(args.length > 0, `replicator mode not specified`);
14
17
  const fileMode = v.parse(args[0], replicaFileModeSchema);
15
18
  const config = getZeroConfig(env, args.slice(1));
19
+ assertNormalized(config);
16
20
  const mode = fileMode === 'backup' ? 'backup' : 'serving';
17
21
  const workerName = `${mode}-replicator`;
18
22
  const lc = createLogContext(config, { worker: workerName });
19
23
  const replica = await setupReplica(lc, fileMode, config.replica);
20
- const changeStreamerPort = config.changeStreamerPort ?? config.port + 1;
21
- const changeStreamerURI = config.changeStreamerURI ?? `ws://localhost:${changeStreamerPort}`;
22
- const changeStreamer = new ChangeStreamerHttpClient(lc, changeStreamerURI);
23
- const replicator = new ReplicatorService(lc, must(config.taskID, `main must set --task-id`), `${workerName}-${pid}`, mode, changeStreamer, replica);
24
+ const shard = getShardConfig(config);
25
+ const { taskID, change } = config;
26
+ // Create a pg client with a single short-lived connection for the purpose
27
+ // of change-streamer discovery (i.e. ChangeDB as DNS).
28
+ const changeDB = pgClient(lc, change.db, {
29
+ max: 1,
30
+ ['idle_timeout']: 15,
31
+ connection: { ['application_name']: 'change-streamer-discovery' },
32
+ });
33
+ const changeStreamer = new ChangeStreamerHttpClient(lc, shard, changeDB);
34
+ const replicator = new ReplicatorService(lc, taskID, `${workerName}-${pid}`, mode, changeStreamer, replica);
24
35
  setUpMessageHandlers(lc, replicator, parent);
25
36
  const running = runUntilKilled(lc, parent, replicator);
26
37
  // Signal readiness once the first ReplicaVersionReady notification is received.
@@ -1 +1 @@
1
- {"version":3,"file":"replicator.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/replicator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replicator.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/replicator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,11 @@
1
1
  import '@dotenvx/dotenvx/config';
2
2
  import { type Worker } from '../../types/processes.ts';
3
+ /**
4
+ * Top-level `runner` entry point to the zero-cache. This layer is responsible for:
5
+ * * runtime-based config normalization
6
+ * * lazy startup
7
+ * * serving /statsz
8
+ * * auto-reset restarts (TODO)
9
+ */
3
10
  export declare function runWorker(parent: Worker | null, env: NodeJS.ProcessEnv): Promise<void>;
4
11
  //# sourceMappingURL=run-worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-worker.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/run-worker.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAMjC,OAAO,EAAc,KAAK,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAMlE,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CA8Gf"}
1
+ {"version":3,"file":"run-worker.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/run-worker.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAMjC,OAAO,EAAc,KAAK,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAKlE;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC,CAoDf"}
@@ -1,92 +1,53 @@
1
1
  import '@dotenvx/dotenvx/config'; // Imports ENV variables from .env
2
2
  import { resolver } from '@rocicorp/resolver';
3
- import { assert } from "../../../../shared/src/asserts.js";
4
- import { parseBoolean } from "../../../../shared/src/options.js";
5
3
  import { PROTOCOL_VERSION } from "../../../../zero-protocol/src/protocol-version.js";
4
+ import { normalizeZeroConfig } from "../../config/normalize.js";
5
+ import { getZeroConfig } from "../../config/zero-config.js";
6
6
  import { ProcessManager, runUntilKilled } from "../../services/life-cycle.js";
7
7
  import { childWorker } from "../../types/processes.js";
8
8
  import { createLogContext } from "../logging.js";
9
- import { getMultiZeroConfig } from "./config.js";
10
9
  import { getTaskID } from "./runtime.js";
11
10
  import { ZeroDispatcher } from "./zero-dispatcher.js";
11
+ /**
12
+ * Top-level `runner` entry point to the zero-cache. This layer is responsible for:
13
+ * * runtime-based config normalization
14
+ * * lazy startup
15
+ * * serving /statsz
16
+ * * auto-reset restarts (TODO)
17
+ */
12
18
  export async function runWorker(parent, env) {
13
- const startMs = Date.now();
14
- const { config, env: baseEnv } = getMultiZeroConfig(env);
15
- const lc = createLogContext(config, { worker: 'runner' });
19
+ const cfg = getZeroConfig(env);
20
+ const lc = createLogContext(cfg, { worker: 'runner' });
21
+ const defaultTaskID = await getTaskID(lc);
22
+ const config = normalizeZeroConfig(lc, cfg, env, defaultTaskID);
16
23
  const processes = new ProcessManager(lc, parent ?? process);
17
- const { serverVersion, port, changeStreamerPort = port + 1 } = config;
18
- let { taskID } = config;
19
- if (!taskID) {
20
- taskID = await getTaskID(lc);
21
- baseEnv['ZERO_TASK_ID'] = taskID;
22
- }
24
+ const { serverVersion, port, lazyStartup } = config;
23
25
  lc.info?.(`starting server${!serverVersion ? '' : `@${serverVersion}`} ` +
24
- `protocolVersion=${PROTOCOL_VERSION}, taskID=${taskID}`);
25
- const multiMode = config.tenants.length;
26
- if (!multiMode) {
27
- config.tenants.push({
28
- id: '', // sole tenant signifier
29
- env: { ['ZERO_REPLICA_FILE']: config.replica.file },
30
- });
31
- }
32
- // In the multi-node configuration, determine if this process
33
- // should be dispatching sync requests (i.e. by `host` / `port`),
34
- // or change-streamer requests (i.e. by tenant `id`).
35
- const runAsReplicationManager = config.numSyncWorkers === 0;
36
- // Start the first tenant at (port + 3) unless explicitly
37
- // overridden by its own ZERO_PORT ...
38
- let tenantPort = port;
39
- const tenants = config.tenants.map(tenant => {
40
- const mergedEnv = {
41
- ...process.env, // propagate all ENV variables from this process
42
- ...baseEnv, // defaults
43
- ['ZERO_TENANT_ID']: tenant.id,
44
- ['ZERO_PORT']: String((tenantPort += 3)), // and bump the port by 3 thereafter.
45
- ...tenant.env, // overrides
46
- };
47
- if (runAsReplicationManager) {
48
- // Sanity-check. It doesn't make sense to run sync workers in the
49
- // replication-manager.
50
- assert(mergedEnv['ZERO_NUM_SYNC_WORKERS'] === '0', `Tenant ${tenant.id} cannot run sync workers in the replication-manager`);
51
- }
52
- const changeStreamerURI = mergedEnv['ZERO_CHANGE_STREAMER_URI'];
53
- if (changeStreamerURI && multiMode) {
54
- // Requests from the view-syncer to the replication-manager are
55
- // delineated/dispatched by the tenant ID as the first path component.
56
- mergedEnv['ZERO_CHANGE_STREAMER_URI'] += changeStreamerURI.endsWith('/')
57
- ? tenant.id
58
- : `/${tenant.id}`;
59
- }
60
- let worker;
61
- function getWorker() {
62
- if (worker === undefined) {
63
- lc.info?.('starting zero-cache' + (tenant.id ? ` for ${tenant.id}` : ''));
64
- const r = (worker = resolver());
65
- const w = childWorker('./server/main.ts', mergedEnv)
66
- .once('message', () => r.resolve(w))
67
- .once('error', r.reject);
68
- processes.addWorker(w, 'user-facing', tenant.id);
69
- }
70
- return worker.promise;
71
- }
72
- return { ...tenant, env: mergedEnv, getWorker };
73
- });
74
- // Eagerly start zero-caches that are not configured to --lazy-startup.
75
- for (const tenant of tenants) {
76
- const lazy = parseBoolean('ZERO_LAZY_STARTUP', tenant.env['ZERO_LAZY_STARTUP'] ?? 'false');
77
- if (!lazy) {
78
- void tenant.getWorker();
26
+ `protocolVersion=${PROTOCOL_VERSION}`);
27
+ let zeroCache;
28
+ function startZeroCache() {
29
+ if (zeroCache === undefined) {
30
+ const startMs = performance.now();
31
+ lc.info?.('starting zero-cache');
32
+ const r = (zeroCache = resolver());
33
+ const w = childWorker('./server/main.ts', env)
34
+ .once('message', () => {
35
+ r.resolve(w);
36
+ lc.info?.(`zero-cache ready (${performance.now() - startMs} ms)`);
37
+ })
38
+ .once('error', r.reject);
39
+ processes.addWorker(w, 'user-facing', 'zero-cache');
79
40
  }
41
+ return zeroCache.promise;
42
+ }
43
+ // Eagerly start the zero-cache if it was not configured with --lazy-startup.
44
+ if (!lazyStartup) {
45
+ void startZeroCache();
80
46
  }
81
- const s = tenants.length > 1 ? 's' : '';
82
- lc.info?.(`waiting for zero-cache${s} to be ready ...`);
83
47
  await processes.allWorkersReady();
84
- lc.info?.(`zero-cache${s} ready (${Date.now() - startMs} ms)`);
85
48
  parent?.send(['ready', { ready: true }]);
86
49
  try {
87
- await runUntilKilled(lc, parent ?? process, new ZeroDispatcher(config, lc, runAsReplicationManager, tenants, {
88
- port: runAsReplicationManager ? changeStreamerPort : port,
89
- }));
50
+ await runUntilKilled(lc, parent ?? process, new ZeroDispatcher(config, lc, { port }, startZeroCache));
90
51
  }
91
52
  catch (err) {
92
53
  processes.logErrorAndExit(err, 'main');
@@ -1 +1 @@
1
- {"version":3,"file":"run-worker.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/run-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-worker.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/run-worker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAOjD,wBAAsB,SAAS,CAAC,EAAE,EAAE,UAAU,mBAoB7C"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAOjD,wBAAsB,SAAS,CAAC,EAAE,EAAE,UAAU,mBA+B7C"}
@@ -5,9 +5,20 @@ const containerMetadataSchema = v.object({ ['TaskARN']: v.string() });
5
5
  export async function getTaskID(lc) {
6
6
  const containerURI = process.env['ECS_CONTAINER_METADATA_URI_V4'];
7
7
  if (containerURI) {
8
+ try {
9
+ const resp = await fetch(`${containerURI}`);
10
+ const metadata = await resp.json();
11
+ // Logged purely for debugging.
12
+ lc.info?.(`Container metadata`, { metadata });
13
+ }
14
+ catch (e) {
15
+ lc.warn?.('unable to lookup container metadata', e);
16
+ }
8
17
  try {
9
18
  const resp = await fetch(`${containerURI}/task`);
10
- const { TaskARN: taskID } = v.parse(await resp.json(), containerMetadataSchema, 'passthrough');
19
+ const metadata = v.parse(await resp.json(), containerMetadataSchema, 'passthrough');
20
+ lc.info?.(`Task metadata`, { metadata });
21
+ const { TaskARN: taskID } = metadata;
11
22
  // Task ARN's are long, e.g.
12
23
  // "arn:aws:ecs:us-east-1:712907626835:task/zbugs-prod-Cluster-vvNFcPUVpGHr/0042ea25bf534dc19975e26f61441737"
13
24
  // We only care about the unique ID, i.e. the last path component.
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,CAAC,MAAM,kCAAkC,CAAC;AAEtD,sGAAsG;AACtG,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAc;IAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAClE,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,OAAO,CAAC,CAAC;YACjD,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,CAAC,CAAC,KAAK,CAC/B,MAAM,IAAI,CAAC,IAAI,EAAE,EACjB,uBAAuB,EACvB,aAAa,CACd,CAAC;YACF,4BAA4B;YAC5B,6GAA6G;YAC7G,kEAAkE;YAClE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,iCAAiC;QAC3E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,EAAE,CAAC,IAAI,EAAE,CAAC,wDAAwD,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,CAAC,MAAM,kCAAkC,CAAC;AAEtD,sGAAsG;AACtG,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAc;IAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAClE,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,+BAA+B;YAC/B,EAAE,CAAC,IAAI,EAAE,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,EAAE,CAAC,IAAI,EAAE,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,OAAO,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CACtB,MAAM,IAAI,CAAC,IAAI,EAAE,EACjB,uBAAuB,EACvB,aAAa,CACd,CAAC;YACF,EAAE,CAAC,IAAI,EAAE,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;YACvC,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,QAAQ,CAAC;YACnC,4BAA4B;YAC5B,6GAA6G;YAC7G,kEAAkE;YAClE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,iCAAiC;QAC3E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,EAAE,CAAC,IAAI,EAAE,CAAC,wDAAwD,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC"}
@@ -1,17 +1,10 @@
1
1
  import type { LogContext } from '@rocicorp/logger';
2
+ import type { NormalizedZeroConfig } from '../../config/normalize.ts';
2
3
  import { HttpService, type Options } from '../../services/http-service.ts';
3
4
  import type { Worker } from '../../types/processes.ts';
4
- import type { ZeroConfig } from '../../config/zero-config.ts';
5
- type Tenant = {
6
- id: string;
7
- host?: string | undefined;
8
- path?: string | undefined;
9
- getWorker: () => Promise<Worker>;
10
- };
11
5
  export declare class ZeroDispatcher extends HttpService {
12
6
  #private;
13
7
  readonly id = "zero-dispatcher";
14
- constructor(config: ZeroConfig, lc: LogContext, runAsReplicationManager: boolean, tenants: Tenant[], opts: Options);
8
+ constructor(config: NormalizedZeroConfig, lc: LogContext, opts: Options, getWorker: () => Promise<Worker>);
15
9
  }
16
- export {};
17
10
  //# sourceMappingURL=zero-dispatcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zero-dispatcher.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/zero-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAMjD,OAAO,EAAC,WAAW,EAAE,KAAK,OAAO,EAAC,MAAM,gCAAgC,CAAC;AAEzE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAE5D,KAAK,MAAM,GAAG;IAIZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,qBAAa,cAAe,SAAQ,WAAW;;IAC7C,QAAQ,CAAC,EAAE,qBAAqB;gBAK9B,MAAM,EAAE,UAAU,EAClB,EAAE,EAAE,UAAU,EACd,uBAAuB,EAAE,OAAO,EAChC,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,OAAO;CAyDhB"}
1
+ {"version":3,"file":"zero-dispatcher.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/zero-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAC,WAAW,EAAE,KAAK,OAAO,EAAC,MAAM,gCAAgC,CAAC;AAGzE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAMrD,qBAAa,cAAe,SAAQ,WAAW;;IAC7C,QAAQ,CAAC,EAAE,qBAAqB;gBAI9B,MAAM,EAAE,oBAAoB,EAC5B,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC;CAmBnC"}
@@ -1,55 +1,18 @@
1
- import { assert } from "../../../../shared/src/asserts.js";
2
- import { installWebSocketHandoff, } from "../../services/dispatcher/websocket-handoff.js";
3
1
  import { HttpService } from "../../services/http-service.js";
2
+ import { handleStatzRequest } from "../../services/statz.js";
3
+ import { installWebSocketHandoff, } from "../../types/websocket-handoff.js";
4
4
  export class ZeroDispatcher extends HttpService {
5
5
  id = 'zero-dispatcher';
6
- #tenants;
7
- #runAsReplicationManager;
8
- constructor(config, lc, runAsReplicationManager, tenants, opts) {
9
- super('zero-dispatcher', config, lc, opts, fastify => {
6
+ #getWorker;
7
+ constructor(config, lc, opts, getWorker) {
8
+ super(`zero-dispatcher`, lc, opts, fastify => {
9
+ fastify.get('/statz', (req, res) => handleStatzRequest(config, req, res));
10
10
  installWebSocketHandoff(lc, this.#handoff, fastify.server);
11
11
  });
12
- this.#runAsReplicationManager = runAsReplicationManager;
13
- this.#tenants = tenants.filter(
14
- // Only tenants with a host or path can be dispatched to
15
- // in the view-syncer (with the exception of the single tenant
16
- // case, signified by the empty id).
17
- t => runAsReplicationManager || t.host || t.path || t.id.length === 0);
12
+ this.#getWorker = getWorker;
18
13
  }
19
- #handoff = (req, dispatch, onError) => {
20
- const t = this.#getTenant(req);
21
- void t
22
- .getWorker()
23
- .then(receiver => dispatch({ payload: t.id, receiver }), onError);
14
+ #handoff = (_req, dispatch, onError) => {
15
+ void this.#getWorker().then(receiver => dispatch({ payload: 'unused', receiver }), onError);
24
16
  };
25
- #getTenant(req) {
26
- const { headers, url: u } = req;
27
- const host = headers.host?.toLowerCase();
28
- const { pathname } = new URL(u ?? '', `http://${host}/`);
29
- for (const t of this.#tenants) {
30
- if (t.id.length === 0) {
31
- // sole tenant
32
- assert(this.#tenants.length === 1);
33
- return t;
34
- }
35
- if (this.#runAsReplicationManager) {
36
- // The replication-manager dispatches internally using the
37
- // tenant ID as the first path component
38
- if (pathname.startsWith('/' + t.id + '/')) {
39
- return t;
40
- }
41
- continue;
42
- }
43
- if (t.host && t.host !== host) {
44
- continue;
45
- }
46
- if (t.path && !pathname.startsWith(t.path)) {
47
- continue;
48
- }
49
- this._lc.debug?.(`connecting ${host}${pathname} to ${t.id}`);
50
- return t;
51
- }
52
- throw new Error(`no matching tenant for: ${host}${pathname}`);
53
- }
54
17
  }
55
18
  //# sourceMappingURL=zero-dispatcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zero-dispatcher.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/zero-dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zero-dispatcher.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/zero-dispatcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAe,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EACL,uBAAuB,GAExB,MAAM,kCAAkC,CAAC;AAE1C,MAAM,OAAO,cAAe,SAAQ,WAAW;IACpC,EAAE,GAAG,iBAAiB,CAAC;IACvB,UAAU,CAAwB;IAE3C,YACE,MAA4B,EAC5B,EAAc,EACd,IAAa,EACb,SAAgC;QAEhC,KAAK,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;YAC3C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1E,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAEQ,QAAQ,GAAG,CAClB,IAA2B,EAC3B,QAA0C,EAC1C,OAAiC,EACjC,EAAE;QACF,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CACzB,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,EACnD,OAAO,CACR,CAAC;IACJ,CAAC,CAAC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"syncer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/syncer.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAY/B,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,CAuGf"}
1
+ {"version":3,"file":"syncer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/syncer.ts"],"names":[],"mappings":"AAoBA,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAY/B,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAAC,CAwGf"}
@@ -5,6 +5,7 @@ import { assert } from "../../../shared/src/asserts.js";
5
5
  import { must } from "../../../shared/src/must.js";
6
6
  import { randInt } from "../../../shared/src/rand.js";
7
7
  import * as v from "../../../shared/src/valita.js";
8
+ import { assertNormalized } from "../config/normalize.js";
8
9
  import { getZeroConfig } from "../config/zero-config.js";
9
10
  import { warmupConnections } from "../db/warmup.js";
10
11
  import { exitAfter, runUntilKilled } from "../services/life-cycle.js";
@@ -28,6 +29,7 @@ function randomID() {
28
29
  }
29
30
  export default function runWorker(parent, env, ...args) {
30
31
  const config = getZeroConfig(env, args.slice(1));
32
+ assertNormalized(config);
31
33
  startOtel(config.log);
32
34
  const lc = createLogContext(config, { worker: 'syncer' });
33
35
  assert(args.length > 0, `replicator mode not specified`);
@@ -37,7 +39,7 @@ export default function runWorker(parent, env, ...args) {
37
39
  assert(upstream.maxConnsPerWorker);
38
40
  const replicaFile = replicaFileName(config.replica.file, fileMode);
39
41
  lc.debug?.(`running view-syncer on ${replicaFile}`);
40
- const cvrDB = pgClient(lc, cvr.db ?? upstream.db, {
42
+ const cvrDB = pgClient(lc, cvr.db, {
41
43
  max: cvr.maxConnsPerWorker,
42
44
  connection: { ['application_name']: `zero-sync-worker-${pid}-cvr` },
43
45
  });
@@ -58,7 +60,7 @@ export default function runWorker(parent, env, ...args) {
58
60
  .withContext('clientGroupID', id)
59
61
  .withContext('instance', randomID());
60
62
  lc.debug?.(`creating view syncer`);
61
- return new ViewSyncerService(logger, shard, must(config.taskID, 'main must set --task-id'), id, cvrDB, new PipelineDriver(logger, config.log, new Snapshotter(logger, replicaFile, shard), shard, operatorStorage.createClientGroupStorage(id), id), sub, drainCoordinator, config.log.slowHydrateThreshold, undefined, config.targetClientRowCount);
63
+ return new ViewSyncerService(logger, shard, config.taskID, id, cvrDB, new PipelineDriver(logger, config.log, new Snapshotter(logger, replicaFile, shard), shard, operatorStorage.createClientGroupStorage(id), id), sub, drainCoordinator, config.log.slowHydrateThreshold, undefined, config.targetClientRowCount);
62
64
  };
63
65
  const mutagenFactory = (id) => new MutagenService(lc.withContext('component', 'mutagen').withContext('clientGroupID', id), shard, id, upstreamDB, config);
64
66
  const pusherFactory = config.push.url === undefined
@@ -1 +1 @@
1
- {"version":3,"file":"syncer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/syncer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syncer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/server/syncer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { LogContext } from '@rocicorp/logger';
2
+ import type { Service } from '../services/service.ts';
3
+ import type { Worker } from '../types/processes.ts';
4
+ export declare class WorkerDispatcher implements Service {
5
+ #private;
6
+ readonly id = "worker-dispatcher";
7
+ constructor(lc: LogContext, taskID: string, parent: Worker, syncers: Worker[], mutator: Worker | undefined, changeStreamer: Worker | undefined);
8
+ run(): Promise<void>;
9
+ stop(): Promise<void>;
10
+ }
11
+ export declare function parsePath(url: URL): {
12
+ base?: string;
13
+ worker: 'sync' | 'mutate' | 'replication';
14
+ version: string;
15
+ } | undefined;
16
+ //# sourceMappingURL=worker-dispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-dispatcher.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/server/worker-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAO5C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAEpD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAQlD,qBAAa,gBAAiB,YAAW,OAAO;;IAC9C,QAAQ,CAAC,EAAE,uBAAuB;gBAMhC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,cAAc,EAAE,MAAM,GAAG,SAAS;IA2FpC,GAAG;IAIH,IAAI;CAIL;AAID,wBAAgB,SAAS,CACvB,GAAG,EAAE,GAAG,GAEN;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAC3E,SAAS,CAGZ"}