@effect/cluster 0.52.4 → 0.52.6

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.
@@ -6,8 +6,9 @@ import * as Arr from "effect/Array";
6
6
  import * as Duration from "effect/Duration";
7
7
  import * as Effect from "effect/Effect";
8
8
  import * as Layer from "effect/Layer";
9
- import * as Resource from "effect/Resource";
9
+ import * as Scope from "effect/Scope";
10
10
  import { PersistenceError } from "./ClusterError.js";
11
+ import { ResourceRef } from "./internal/resourceRef.js";
11
12
  import * as RunnerStorage from "./RunnerStorage.js";
12
13
  import * as ShardId from "./ShardId.js";
13
14
  import * as ShardingConfig from "./ShardingConfig.js";
@@ -22,19 +23,19 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
22
23
  const prefix = options?.prefix ?? "cluster";
23
24
  const table = name => `${prefix}_${name}`;
24
25
  const acquireLockConn = sql.onDialectOrElse({
25
- pg: () => Effect.gen(function* () {
26
- const conn = yield* Effect.orDie(sql.reserve);
27
- yield* Effect.addFinalizer(() => Effect.orDie(conn.executeRaw("SELECT pg_advisory_unlock_all()", [])));
26
+ pg: () => Effect.fnUntraced(function* (scope) {
27
+ const conn = yield* Effect.orDie(sql.reserve).pipe(Scope.extend(scope));
28
+ yield* Scope.addFinalizerExit(scope, () => Effect.orDie(conn.executeRaw("SELECT pg_advisory_unlock_all()", [])));
28
29
  return conn;
29
30
  }),
30
- mysql: () => Effect.gen(function* () {
31
- const conn = yield* Effect.orDie(sql.reserve);
32
- yield* Effect.addFinalizer(() => Effect.orDie(conn.executeRaw("SELECT RELEASE_ALL_LOCKS()", [])));
31
+ mysql: () => Effect.fnUntraced(function* (scope) {
32
+ const conn = yield* Effect.orDie(sql.reserve).pipe(Scope.extend(scope));
33
+ yield* Scope.addFinalizerExit(scope, () => Effect.orDie(conn.executeRaw("SELECT RELEASE_ALL_LOCKS()", [])));
33
34
  return conn;
34
35
  }),
35
36
  orElse: () => undefined
36
37
  });
37
- const lockConnRef = acquireLockConn && (yield* Resource.manual(acquireLockConn));
38
+ const lockConn = acquireLockConn && (yield* ResourceRef.from(yield* Effect.scope, acquireLockConn));
38
39
  const runnersTable = table("runners");
39
40
  const runnersTableSql = sql(runnersTable);
40
41
  // Migrate old tables if they exist
@@ -175,18 +176,18 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
175
176
  `.values
176
177
  });
177
178
  const execWithLockConn = effect => {
178
- if (!lockConnRef) return effect;
179
+ if (!lockConn) return effect;
179
180
  const [query, params] = effect.compile();
180
- return Resource.get(lockConnRef).pipe(Effect.flatMap(conn => conn.executeRaw(query, params)), Effect.onError(() => Resource.refresh(lockConnRef)));
181
+ return lockConn.await.pipe(Effect.flatMap(conn => conn.executeRaw(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
181
182
  };
182
183
  const execWithLockConnValues = effect => {
183
- if (!lockConnRef) return effect.values;
184
+ if (!lockConn) return effect.values;
184
185
  const [query, params] = effect.compile();
185
- return Resource.get(lockConnRef).pipe(Effect.flatMap(conn => conn.executeValues(query, params)), Effect.onError(() => Resource.refresh(lockConnRef)));
186
+ return lockConn.await.pipe(Effect.flatMap(conn => conn.executeValues(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
186
187
  };
187
188
  const acquireLock = sql.onDialectOrElse({
188
189
  pg: () => Effect.fnUntraced(function* (_address, shardIds) {
189
- const conn = yield* Resource.get(lockConnRef);
190
+ const conn = yield* lockConn.await;
190
191
  const acquiredShardIds = [];
191
192
  const toAcquire = new Map(shardIds.map(shardId => [lockNumbers.get(shardId), shardId]));
192
193
  const takenLocks = yield* conn.executeValues(`SELECT objid FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = pg_backend_pid() ORDER BY objid`, []);
@@ -206,9 +207,9 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
206
207
  }
207
208
  }
208
209
  return acquiredShardIds;
209
- }, Effect.onError(() => Resource.refresh(lockConnRef))),
210
+ }, Effect.onError(() => lockConn.unsafeRebuild())),
210
211
  mysql: () => Effect.fnUntraced(function* (_address, shardIds) {
211
- const conn = yield* Resource.get(lockConnRef);
212
+ const conn = yield* lockConn.await;
212
213
  const takenLocks = (yield* conn.executeUnprepared(`SELECT ${allMySqlTakenLocks}`, [], undefined))[0];
213
214
  const acquiredShardIds = [];
214
215
  const toAcquire = [];
@@ -229,7 +230,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
229
230
  }
230
231
  }
231
232
  return acquiredShardIds;
232
- }, Effect.onError(() => Resource.refresh(lockConnRef))),
233
+ }, Effect.onError(() => lockConn.unsafeRebuild())),
233
234
  mssql: () => (address, shardIds) => {
234
235
  const values = shardIds.map(shardId => sql`(${stringLiteral(shardId)}, ${stringLiteral(address)}, ${sqlNow})`);
235
236
  return sql`
@@ -325,27 +326,25 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
325
326
  release: sql.onDialectOrElse({
326
327
  pg: () => Effect.fnUntraced(function* (_address, shardId) {
327
328
  const lockNum = lockNumbers.get(shardId);
328
- const conn = yield* Resource.get(lockConnRef);
329
- const release = conn.executeRaw(`SELECT pg_advisory_unlock(${lockNum})`, []).pipe(Effect.timeoutOption(Duration.seconds(5)));
330
- const check = conn.executeValues(`SELECT 1 FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = pg_backend_pid() AND objid = ${lockNum}`, []);
331
- while (true) {
332
- yield* release;
333
- const takenLocks = yield* check;
329
+ for (let i = 0; i < 5; i++) {
330
+ const conn = yield* lockConn.await;
331
+ yield* conn.executeRaw(`SELECT pg_advisory_unlock(${lockNum})`, []);
332
+ const takenLocks = yield* conn.executeValues(`SELECT 1 FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = pg_backend_pid() AND objid = ${lockNum}`, []);
334
333
  if (takenLocks.length === 0) return;
335
334
  }
336
- }, Effect.timeout(config.shardLockExpiration), Effect.onError(() => Resource.refresh(lockConnRef)), Effect.asVoid, PersistenceError.refail, withTracerDisabled),
335
+ const conn = yield* lockConn.await;
336
+ yield* conn.executeRaw(`SELECT pg_advisory_unlock_all()`, []);
337
+ }, Effect.onError(() => lockConn.unsafeRebuild()), Effect.asVoid, PersistenceError.refail),
337
338
  mysql: () => Effect.fnUntraced(function* (_address, shardId) {
338
- const conn = yield* Resource.get(lockConnRef);
339
339
  const lockName = lockNames.get(shardId);
340
- const release = conn.executeRaw(`SELECT RELEASE_LOCK('${lockName}')`, []);
341
- const check = conn.executeValues(`SELECT IS_USED_LOCK('${lockName}') = CONNECTION_ID() AS is_taken`, []);
342
340
  while (true) {
343
- yield* release;
344
- const takenLocks = yield* check;
341
+ const conn = yield* lockConn.await;
342
+ yield* conn.executeRaw(`SELECT RELEASE_LOCK('${lockName}')`, []);
343
+ const takenLocks = yield* conn.executeValues(`SELECT IS_USED_LOCK('${lockName}') = CONNECTION_ID() AS is_taken`, []);
345
344
  if (takenLocks.length === 0 || takenLocks[0][0] !== 1) return;
346
345
  }
347
- }, Effect.timeout(config.shardLockExpiration), Effect.onError(() => Resource.refresh(lockConnRef)), Effect.asVoid, PersistenceError.refail, withTracerDisabled),
348
- orElse: () => (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(PersistenceError.refail, withTracerDisabled)
346
+ }, Effect.onError(() => lockConn.unsafeRebuild()), Effect.asVoid, PersistenceError.refail),
347
+ orElse: () => (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(PersistenceError.refail)
349
348
  }),
350
349
  releaseAll: sql.onDialectOrElse({
351
350
  pg: () => _address => sql`SELECT pg_advisory_unlock_all()`.pipe(execWithLockConn, Effect.asVoid, PersistenceError.refail, withTracerDisabled),
@@ -1 +1 @@
1
- {"version":3,"file":"SqlRunnerStorage.js","names":["SqlClient","Arr","Duration","Effect","Layer","Resource","PersistenceError","RunnerStorage","ShardId","ShardingConfig","withTracerDisabled","withTracerEnabled","make","fnUntraced","options","config","sql","withoutTransforms","prefix","table","name","acquireLockConn","onDialectOrElse","pg","gen","conn","orDie","reserve","addFinalizer","executeRaw","mysql","orElse","undefined","lockConnRef","manual","runnersTable","runnersTableSql","hasOldTables","pipe","isSuccess","ignore","mssql","locksTable","locksTableSql","void","sqlNowString","sqlNow","literal","expiresSeconds","Math","ceil","toSeconds","shardLockExpiration","toString","lockExpiresAt","encodeBoolean","b","sqlite","insertRunner","address","runner","healthy","values","unprepared","map","results","machine_id","execWithLockConn","effect","query","params","compile","get","flatMap","onError","refresh","execWithLockConnValues","executeValues","acquireLock","_address","shardIds","acquiredShardIds","toAcquire","Map","shardId","lockNumbers","takenLocks","i","length","lockNum","push","lockNumbersReverse","delete","size","rows","executeUnprepared","pgLocks","allMySqlTakenLocks","includes","mysqlLocks","stringLiteral","csv","andThen","acquiredLocks","withTransaction","shardGroups","group","base","shard","shardsPerGroup","set","lockNames","lockNamesReverse","lockName","shardIdsMap","Array","from","entries","join","stringLiteralArr","row","wrapString","s","arr","refreshShards","makeEncoded","getRunners","refail","String","Boolean","register","Number","unregister","asVoid","setRunnerHealth","acquire","as","release","timeoutOption","seconds","check","timeout","releaseAll","layer","scoped","layerWith"],"sources":["../../src/SqlRunnerStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SqlRunnerStorage.js","names":["SqlClient","Arr","Duration","Effect","Layer","Scope","PersistenceError","ResourceRef","RunnerStorage","ShardId","ShardingConfig","withTracerDisabled","withTracerEnabled","make","fnUntraced","options","config","sql","withoutTransforms","prefix","table","name","acquireLockConn","onDialectOrElse","pg","scope","conn","orDie","reserve","pipe","extend","addFinalizerExit","executeRaw","mysql","orElse","undefined","lockConn","from","runnersTable","runnersTableSql","hasOldTables","isSuccess","ignore","mssql","locksTable","locksTableSql","void","sqlNowString","sqlNow","literal","expiresSeconds","Math","ceil","toSeconds","shardLockExpiration","toString","lockExpiresAt","encodeBoolean","b","sqlite","insertRunner","address","runner","healthy","values","unprepared","map","results","machine_id","execWithLockConn","effect","query","params","compile","await","flatMap","onError","unsafeRebuild","execWithLockConnValues","executeValues","acquireLock","_address","shardIds","acquiredShardIds","toAcquire","Map","shardId","lockNumbers","get","takenLocks","i","length","lockNum","push","lockNumbersReverse","delete","size","rows","executeUnprepared","pgLocks","allMySqlTakenLocks","includes","mysqlLocks","stringLiteral","csv","andThen","acquiredLocks","withTransaction","shardGroups","group","base","shard","shardsPerGroup","set","lockNames","lockNamesReverse","lockName","shardIdsMap","Array","entries","join","stringLiteralArr","row","wrapString","s","arr","refreshShards","makeEncoded","getRunners","refail","String","Boolean","register","Number","unregister","asVoid","setRunnerHealth","acquire","refresh","as","release","releaseAll","layer","scoped","layerWith"],"sources":["../../src/SqlRunnerStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ import * as Duration from "effect/Duration";
7
7
  import * as Effect from "effect/Effect";
8
8
  import * as Equal from "effect/Equal";
9
9
  import * as Exit from "effect/Exit";
10
+ import * as FiberMap from "effect/FiberMap";
10
11
  import * as FiberRef from "effect/FiberRef";
11
12
  import { identity } from "effect/Function";
12
13
  import * as HashMap from "effect/HashMap";
@@ -54,7 +55,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
54
55
  yield* Scope.addFinalizerExit(scope, () => {
55
56
  serverCloseLatches.get(address)?.unsafeOpen();
56
57
  serverCloseLatches.delete(address);
57
- return Effect.ignore(options.storage.resetAddress(address));
58
+ return Effect.void;
58
59
  });
59
60
  const activeRequests = new Map();
60
61
  let defectRequestIds = [];
@@ -284,11 +285,14 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
284
285
  }
285
286
  }), FiberRef.currentLogAnnotations, HashMap.empty());
286
287
  }
288
+ const entityRemovalMap = yield* FiberMap.make();
287
289
  const interruptShard = shardId => Effect.suspend(function loop() {
288
290
  const toAwait = Arr.empty();
289
291
  activeServers.forEach(state => {
290
292
  if (shardId[Equal.symbol](state.address.shardId)) {
291
- toAwait.push(entities.removeIgnore(state.address));
293
+ toAwait.push(FiberMap.run(entityRemovalMap, state.address, entities.removeIgnore(state.address), {
294
+ onlyIfMissing: true
295
+ }));
292
296
  }
293
297
  });
294
298
  serverCloseLatches.forEach((latch, address) => {
@@ -1 +1 @@
1
- {"version":3,"file":"entityManager.js","names":["RequestId","RpcServer","Arr","Cause","Context","Duration","Effect","Equal","Exit","FiberRef","identity","HashMap","Metric","Option","Schedule","Schema","Scope","AlreadyProcessingMessage","EntityNotAssignedToRunner","MailboxFull","MalformedMessage","ClusterMetrics","Persisted","Uninterruptible","CurrentAddress","CurrentRunnerAddress","Request","Envelope","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","retryDriver","driver","defectRetryPolicy","andThen","defaultRetryPolicy","activeServers","Map","serverCloseLatches","processedRequestIds","Set","entities","address","sharding","hasShardId","shardId","endLatch","makeLatch","addFinalizerExit","get","unsafeOpen","delete","ignore","resetAddress","activeRequests","defectRequestIds","writeRef","from","isShuttingDown","handlers","protocol","toHandlersContext","pipe","provide","add","runnerAddress","locally","currentLogAnnotations","empty","server","makeNoSerialization","spanPrefix","type","entityId","spanAttributes","concurrency","disableFatalDefects","onFromServer","response","_tag","request","requestId","void","sentReply","rpc","annotations","isFailure","exit","isInterrupted","forServer","write","message","envelope","id","tag","payload","lastSentChunk","forkIn","unregisterReplyHandler","retryRespond","suspend","respond","WithExit","unsafeNext","flatMap","size","state","lastActiveCheck","unsafeCurrentTimeMillis","orDie","sequence","reply","Chunk","values","some","onDefect","die","defect","open","extend","addFinalizer","sync","length","cause","has","effect","unsafeRebuild","Array","keys","logError","next","annotateLogs","module","runner","catchAllCause","clientId","current","await","value","withFiberRuntime","fiber","set","unsafeMakeLatch","interruptible","timeoutOption","entityTerminationTimeout","reaper","maxIdleTime","toMillis","entityMaxIdleTime","Number","isFinite","register","servers","gauge","tagged","unsafeUpdate","BigInt","sleep","forever","sendLocal","entry","fail","envelopeId","requests","dieMessage","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","interruptShard","loop","toAwait","forEach","symbol","push","removeIgnore","latch","all","discard","decodeMessage","decode","makeMessageSchema","isProcessingFor","excludeReplies","undefined","clearProcessed","clear","send","matchEffect","onFailure","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","activeEntityCount","exponential","union","spaced","TaggedStruct","transform","Struct","PartialEncodedRequestFromSelf","fields","Literal","payloadSchema","RequestFromSelf","encoded","makeRequest","encode","OptionFromSelf","Union","typeSchema","AckChunk","Interrupt","times","catchAll","delay"],"sources":["../../../src/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"entityManager.js","names":["RequestId","RpcServer","Arr","Cause","Context","Duration","Effect","Equal","Exit","FiberMap","FiberRef","identity","HashMap","Metric","Option","Schedule","Schema","Scope","AlreadyProcessingMessage","EntityNotAssignedToRunner","MailboxFull","MalformedMessage","ClusterMetrics","Persisted","Uninterruptible","CurrentAddress","CurrentRunnerAddress","Request","Envelope","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","retryDriver","driver","defectRetryPolicy","andThen","defaultRetryPolicy","activeServers","Map","serverCloseLatches","processedRequestIds","Set","entities","address","sharding","hasShardId","shardId","endLatch","makeLatch","addFinalizerExit","get","unsafeOpen","delete","void","activeRequests","defectRequestIds","writeRef","from","isShuttingDown","handlers","protocol","toHandlersContext","pipe","provide","add","runnerAddress","locally","currentLogAnnotations","empty","server","makeNoSerialization","spanPrefix","type","entityId","spanAttributes","concurrency","disableFatalDefects","onFromServer","response","_tag","request","requestId","sentReply","rpc","annotations","isFailure","exit","isInterrupted","forServer","write","message","envelope","id","tag","payload","lastSentChunk","forkIn","unregisterReplyHandler","retryRespond","suspend","respond","WithExit","unsafeNext","flatMap","size","state","lastActiveCheck","unsafeCurrentTimeMillis","orDie","sequence","reply","Chunk","values","some","onDefect","die","defect","open","extend","addFinalizer","sync","length","cause","has","effect","unsafeRebuild","Array","keys","logError","ignore","next","annotateLogs","module","runner","catchAllCause","clientId","current","await","value","withFiberRuntime","fiber","set","unsafeMakeLatch","interruptible","timeoutOption","entityTerminationTimeout","reaper","maxIdleTime","toMillis","entityMaxIdleTime","Number","isFinite","register","servers","gauge","tagged","unsafeUpdate","BigInt","sleep","forever","sendLocal","entry","fail","envelopeId","requests","dieMessage","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","entityRemovalMap","interruptShard","loop","toAwait","forEach","symbol","push","run","removeIgnore","onlyIfMissing","latch","all","discard","decodeMessage","decode","makeMessageSchema","isProcessingFor","excludeReplies","undefined","clearProcessed","clear","send","matchEffect","onFailure","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","activeEntityCount","exponential","union","spaced","TaggedStruct","transform","Struct","PartialEncodedRequestFromSelf","fields","Literal","payloadSchema","RequestFromSelf","encoded","makeRequest","encode","OptionFromSelf","Union","typeSchema","AckChunk","Interrupt","times","catchAll","delay"],"sources":["../../../src/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/cluster",
3
- "version": "0.52.4",
3
+ "version": "0.52.6",
4
4
  "description": "Unified interfaces for common cluster-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -12,10 +12,10 @@
12
12
  "homepage": "https://effect.website",
13
13
  "peerDependencies": {
14
14
  "@effect/platform": "^0.93.0",
15
- "@effect/rpc": "^0.72.1",
16
15
  "@effect/sql": "^0.48.0",
17
- "effect": "^3.19.1",
18
- "@effect/workflow": "^0.12.2"
16
+ "effect": "^3.19.2",
17
+ "@effect/workflow": "^0.12.2",
18
+ "@effect/rpc": "^0.72.1"
19
19
  },
20
20
  "publishConfig": {
21
21
  "provenance": true
package/src/Sharding.ts CHANGED
@@ -8,12 +8,12 @@ import * as Arr from "effect/Array"
8
8
  import * as Cause from "effect/Cause"
9
9
  import * as Context from "effect/Context"
10
10
  import type { DurationInput } from "effect/Duration"
11
+ import * as Duration from "effect/Duration"
11
12
  import * as Effect from "effect/Effect"
12
13
  import * as Either from "effect/Either"
13
14
  import * as Equal from "effect/Equal"
14
15
  import type * as Exit from "effect/Exit"
15
16
  import * as Fiber from "effect/Fiber"
16
- import * as FiberHandle from "effect/FiberHandle"
17
17
  import * as FiberMap from "effect/FiberMap"
18
18
  import * as FiberRef from "effect/FiberRef"
19
19
  import * as FiberSet from "effect/FiberSet"
@@ -237,6 +237,14 @@ const make = Effect.gen(function*() {
237
237
  return MutableHashSet.has(acquiredShards, address.shardId)
238
238
  }
239
239
 
240
+ yield* Scope.addFinalizer(
241
+ shardingScope,
242
+ Effect.logDebug("Shutdown complete").pipe(Effect.annotateLogs({
243
+ package: "@effect/cluster",
244
+ module: "Sharding"
245
+ }))
246
+ )
247
+
240
248
  // --- Shard acquisition ---
241
249
  //
242
250
  // Responsible for acquiring and releasing shards from RunnerStorage.
@@ -252,6 +260,52 @@ const make = Effect.gen(function*() {
252
260
  return Effect.ignore(runnerStorage.releaseAll(selfAddress))
253
261
  })
254
262
 
263
+ const releaseShardsMap = yield* FiberMap.make<ShardId>()
264
+ const releaseShard = Effect.fnUntraced(
265
+ function*(shardId: ShardId) {
266
+ yield* Effect.forEach(
267
+ entityManagers.values(),
268
+ (state) =>
269
+ state.status === "closed" ? Effect.void : state.manager.interruptShard(shardId).pipe(
270
+ Effect.withSpan("EntityManager.interruptShard", {
271
+ captureStackTrace: false,
272
+ attributes: { entityType: state.entity.type }
273
+ })
274
+ ),
275
+ { concurrency: "unbounded", discard: true }
276
+ ).pipe(
277
+ Effect.timeout(config.entityTerminationTimeout)
278
+ )
279
+ yield* runnerStorage.release(selfAddress, shardId)
280
+ MutableHashSet.remove(releasingShards, shardId)
281
+ yield* storage.unregisterShardReplyHandlers(shardId)
282
+ },
283
+ Effect.sandbox,
284
+ Effect.tapError((cause) => Effect.logDebug(`Could not release shard, retrying`, cause)),
285
+ Effect.eventually,
286
+ (effect, shardId) =>
287
+ effect.pipe(
288
+ Effect.annotateLogs({
289
+ package: "@effect/cluster",
290
+ module: "Sharding",
291
+ fiber: "releaseShard",
292
+ runner: selfAddress,
293
+ shardId
294
+ }),
295
+ Effect.withSpan("Sharding.releaseShard", { captureStackTrace: false }),
296
+ Effect.annotateSpans({
297
+ shardId,
298
+ runner: selfAddress
299
+ }),
300
+ FiberMap.run(releaseShardsMap, shardId, { onlyIfMissing: true })
301
+ )
302
+ )
303
+ const releaseShards = Effect.gen(function*() {
304
+ for (const shardId of releasingShards) {
305
+ yield* releaseShard(shardId)
306
+ }
307
+ })
308
+
255
309
  yield* Effect.gen(function*() {
256
310
  activeShardsLatch.unsafeOpen()
257
311
 
@@ -320,7 +374,8 @@ const make = Effect.gen(function*() {
320
374
  fiber: "Shard acquisition loop",
321
375
  runner: selfAddress
322
376
  }),
323
- Effect.forkIn(shardingScope)
377
+ Effect.forkIn(shardingScope),
378
+ Effect.interruptible
324
379
  )
325
380
 
326
381
  // refresh the shard locks every `shardLockRefreshInterval`
@@ -359,38 +414,16 @@ const make = Effect.gen(function*() {
359
414
  ),
360
415
  Effect.repeat(Schedule.fixed(config.shardLockRefreshInterval)),
361
416
  Effect.forever,
362
- Effect.forkIn(shardingScope)
363
- )
364
-
365
- const releaseShardsHandle = yield* FiberHandle.make()
366
- const releaseShards = Effect.suspend(() =>
367
- Effect.forEach(
368
- releasingShards,
369
- (shardId) =>
370
- Effect.forEach(
371
- entityManagers.values(),
372
- (state) => state.manager.interruptShard(shardId),
373
- { concurrency: "unbounded", discard: true }
374
- ).pipe(
375
- Effect.andThen(runnerStorage.release(selfAddress, shardId)),
376
- Effect.annotateLogs({ runner: selfAddress }),
377
- Effect.flatMap(() => {
378
- MutableHashSet.remove(releasingShards, shardId)
379
- return storage.unregisterShardReplyHandlers(shardId)
380
- })
381
- ),
382
- { concurrency: "unbounded", discard: true }
383
- )
384
- ).pipe(
385
- Effect.repeat({ until: () => MutableHashSet.size(releasingShards) === 0 }),
386
- FiberHandle.run(releaseShardsHandle, { onlyIfMissing: true })
417
+ Effect.forkIn(shardingScope),
418
+ Effect.interruptible
387
419
  )
388
420
 
389
421
  // open the shard latch every poll interval
390
422
  yield* activeShardsLatch.open.pipe(
391
423
  Effect.delay(config.entityMessagePollInterval),
392
424
  Effect.forever,
393
- Effect.forkIn(shardingScope)
425
+ Effect.forkIn(shardingScope),
426
+ Effect.interruptible
394
427
  )
395
428
  }
396
429
 
@@ -555,14 +588,16 @@ const make = Effect.gen(function*() {
555
588
  runner: selfAddress
556
589
  }),
557
590
  Effect.withUnhandledErrorLogLevel(Option.none()),
558
- Effect.forkIn(shardingScope)
591
+ Effect.forkIn(shardingScope),
592
+ Effect.interruptible
559
593
  )
560
594
 
561
595
  // open the storage latch every poll interval
562
596
  yield* storageReadLatch.open.pipe(
563
597
  Effect.delay(config.entityMessagePollInterval),
564
598
  Effect.forever,
565
- Effect.forkIn(shardingScope)
599
+ Effect.forkIn(shardingScope),
600
+ Effect.interruptible
566
601
  )
567
602
 
568
603
  // Resume unprocessed messages for entities that reached a full mailbox.
@@ -682,7 +717,8 @@ const make = Effect.gen(function*() {
682
717
  Effect.sync(() => MutableHashMap.remove(entityResumptionState, address))
683
718
  ),
684
719
  Effect.withUnhandledErrorLogLevel(Option.none()),
685
- Effect.forkIn(shardingScope)
720
+ Effect.forkIn(shardingScope),
721
+ Effect.interruptible
686
722
  )
687
723
  }
688
724
 
@@ -852,16 +888,17 @@ const make = Effect.gen(function*() {
852
888
  const hashRings = new Map<string, HashRing.HashRing<RunnerAddress>>()
853
889
  let nextRunners = MutableHashMap.empty<Runner, boolean>()
854
890
  const healthyRunners = MutableHashSet.empty<Runner>()
891
+ const withTimeout = Effect.timeout(Duration.seconds(5))
855
892
 
856
893
  while (true) {
857
894
  // Ensure the current runner is registered
858
895
  if (selfRunner && !isShutdown.current && !MutableHashMap.has(allRunners, selfRunner)) {
859
896
  yield* Effect.logDebug("Registering runner", selfRunner)
860
- const machineId = yield* runnerStorage.register(selfRunner, true)
897
+ const machineId = yield* withTimeout(runnerStorage.register(selfRunner, true))
861
898
  yield* snowflakeGen.setMachineId(machineId)
862
899
  }
863
900
 
864
- const runners = yield* runnerStorage.getRunners
901
+ const runners = yield* withTimeout(runnerStorage.getRunners)
865
902
  let changed = false
866
903
  for (let i = 0; i < runners.length; i++) {
867
904
  const [runner, healthy] = runners[i]
@@ -944,7 +981,7 @@ const make = Effect.gen(function*() {
944
981
  yield* Effect.logWarning("No healthy runners available")
945
982
  // to prevent a deadlock, we will mark the current node as healthy to
946
983
  // start the health check singleton again
947
- yield* runnerStorage.setRunnerHealth(selfRunner.address, true)
984
+ yield* withTimeout(runnerStorage.setRunnerHealth(selfRunner.address, true))
948
985
  }
949
986
 
950
987
  yield* Effect.sleep(config.refreshAssignmentsInterval)
@@ -958,7 +995,8 @@ const make = Effect.gen(function*() {
958
995
  fiber: "RunnerStorage sync",
959
996
  runner: config.runnerAddress
960
997
  }),
961
- Effect.forkIn(shardingScope)
998
+ Effect.forkIn(shardingScope),
999
+ Effect.interruptible
962
1000
  )
963
1001
 
964
1002
  // --- Clients ---