@effect/cluster 0.52.1 → 0.52.3

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.
@@ -153,88 +153,80 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
153
153
  register(workflow, execute) {
154
154
  // eslint-disable-next-line @typescript-eslint/no-this-alias
155
155
  const engine = this;
156
- return Effect.suspend(() => {
157
- if (entities.has(workflow.name)) {
158
- return Effect.logWarning(`Workflow ${workflow.name} already registered`).pipe(Effect.annotateLogs({
159
- package: "@effect/cluster",
160
- module: "ClusterWorkflowEngine"
161
- }));
162
- }
163
- return sharding.registerEntity(ensureEntity(workflow), Effect.gen(function* () {
164
- const address = yield* Entity.CurrentAddress;
165
- const executionId = address.entityId;
166
- return {
167
- run: request => {
168
- const instance = WorkflowInstance.initial(workflow, executionId);
169
- const payload = request.payload;
170
- let parent;
171
- if (payload[payloadParentKey]) {
172
- parent = payload[payloadParentKey];
156
+ return Effect.suspend(() => sharding.registerEntity(ensureEntity(workflow), Effect.gen(function* () {
157
+ const address = yield* Entity.CurrentAddress;
158
+ const executionId = address.entityId;
159
+ return {
160
+ run: request => {
161
+ const instance = WorkflowInstance.initial(workflow, executionId);
162
+ const payload = request.payload;
163
+ let parent;
164
+ if (payload[payloadParentKey]) {
165
+ parent = payload[payloadParentKey];
166
+ }
167
+ return execute(workflow.payloadSchema.make(payload), executionId).pipe(Effect.ensuring(Effect.suspend(() => {
168
+ if (!instance.suspended) {
169
+ return parent ? ensureSuccess(sendResumeParent(parent)) : Effect.void;
173
170
  }
174
- return execute(workflow.payloadSchema.make(payload), executionId).pipe(Effect.ensuring(Effect.suspend(() => {
175
- if (!instance.suspended) {
176
- return parent ? ensureSuccess(sendResumeParent(parent)) : Effect.void;
177
- }
178
- return engine.deferredResult(InterruptSignal).pipe(Effect.flatMap(maybeResult => {
179
- if (Option.isNone(maybeResult)) {
180
- return Effect.void;
181
- }
182
- instance.suspended = false;
183
- instance.interrupted = true;
184
- return Effect.zipRight(Effect.ignore(clearClock({
185
- workflow,
186
- executionId
187
- })), Effect.withFiberRuntime(fiber => Effect.interruptible(Fiber.interrupt(fiber))));
188
- }), Effect.orDie);
189
- })), Workflow.intoResult, Effect.provideService(WorkflowInstance, instance));
190
- },
191
- activity(request) {
192
- const activityId = `${executionId}/${request.payload.name}`;
193
- const instance = WorkflowInstance.initial(workflow, executionId);
194
- interruptedActivities.delete(activityId);
195
- return Effect.gen(function* () {
196
- let entry = activities.get(activityId);
197
- while (!entry) {
198
- const latch = Effect.unsafeMakeLatch();
199
- activityLatches.set(activityId, latch);
200
- yield* latch.await;
201
- entry = activities.get(activityId);
202
- }
203
- const contextMap = new Map(entry.runtime.context.unsafeMap);
204
- contextMap.set(Activity.CurrentAttempt.key, request.payload.attempt);
205
- contextMap.set(WorkflowInstance.key, instance);
206
- const runtime = Runtime.make({
207
- context: Context.unsafeMake(contextMap),
208
- fiberRefs: entry.runtime.fiberRefs,
209
- runtimeFlags: Runtime.defaultRuntimeFlags
210
- });
211
- return yield* entry.activity.executeEncoded.pipe(Effect.provide(runtime));
212
- }).pipe(Workflow.intoResult, Effect.catchAllCause(cause => {
213
- const interruptors = Cause.interruptors(cause);
214
- // we only want to store interrupts as suspends when the
215
- // client requested it
216
- const ids = Array.from(interruptors, id => Array.from(FiberId.ids(id))).flat();
217
- const suspend = ids.includes(RpcServer.fiberIdClientInterrupt.id);
218
- if (suspend) {
219
- interruptedActivities.add(activityId);
220
- return Effect.succeed(new Workflow.Suspended());
171
+ return engine.deferredResult(InterruptSignal).pipe(Effect.flatMap(maybeResult => {
172
+ if (Option.isNone(maybeResult)) {
173
+ return Effect.void;
221
174
  }
222
- return Effect.failCause(cause);
223
- }), Effect.provideService(WorkflowInstance, instance), Effect.provideService(Activity.CurrentAttempt, request.payload.attempt), Effect.ensuring(Effect.sync(() => {
224
- activities.delete(activityId);
225
- })), Rpc.wrap({
226
- fork: true,
227
- uninterruptible: true
228
- }));
229
- },
230
- deferred: Effect.fnUntraced(function* (request) {
231
- yield* ensureSuccess(resume(workflow, executionId));
232
- return request.payload.exit;
233
- }),
234
- resume: () => ensureSuccess(resume(workflow, executionId))
235
- };
236
- }));
237
- });
175
+ instance.suspended = false;
176
+ instance.interrupted = true;
177
+ return Effect.zipRight(Effect.ignore(clearClock({
178
+ workflow,
179
+ executionId
180
+ })), Effect.withFiberRuntime(fiber => Effect.interruptible(Fiber.interrupt(fiber))));
181
+ }), Effect.orDie);
182
+ })), Workflow.intoResult, Effect.provideService(WorkflowInstance, instance));
183
+ },
184
+ activity(request) {
185
+ const activityId = `${executionId}/${request.payload.name}`;
186
+ const instance = WorkflowInstance.initial(workflow, executionId);
187
+ interruptedActivities.delete(activityId);
188
+ return Effect.gen(function* () {
189
+ let entry = activities.get(activityId);
190
+ while (!entry) {
191
+ const latch = Effect.unsafeMakeLatch();
192
+ activityLatches.set(activityId, latch);
193
+ yield* latch.await;
194
+ entry = activities.get(activityId);
195
+ }
196
+ const contextMap = new Map(entry.runtime.context.unsafeMap);
197
+ contextMap.set(Activity.CurrentAttempt.key, request.payload.attempt);
198
+ contextMap.set(WorkflowInstance.key, instance);
199
+ const runtime = Runtime.make({
200
+ context: Context.unsafeMake(contextMap),
201
+ fiberRefs: entry.runtime.fiberRefs,
202
+ runtimeFlags: Runtime.defaultRuntimeFlags
203
+ });
204
+ return yield* entry.activity.executeEncoded.pipe(Effect.provide(runtime));
205
+ }).pipe(Workflow.intoResult, Effect.catchAllCause(cause => {
206
+ const interruptors = Cause.interruptors(cause);
207
+ // we only want to store interrupts as suspends when the
208
+ // client requested it
209
+ const ids = Array.from(interruptors, id => Array.from(FiberId.ids(id))).flat();
210
+ const suspend = ids.includes(RpcServer.fiberIdClientInterrupt.id);
211
+ if (suspend) {
212
+ interruptedActivities.add(activityId);
213
+ return Effect.succeed(new Workflow.Suspended());
214
+ }
215
+ return Effect.failCause(cause);
216
+ }), Effect.provideService(WorkflowInstance, instance), Effect.provideService(Activity.CurrentAttempt, request.payload.attempt), Effect.ensuring(Effect.sync(() => {
217
+ activities.delete(activityId);
218
+ })), Rpc.wrap({
219
+ fork: true,
220
+ uninterruptible: true
221
+ }));
222
+ },
223
+ deferred: Effect.fnUntraced(function* (request) {
224
+ yield* ensureSuccess(resume(workflow, executionId));
225
+ return request.payload.exit;
226
+ }),
227
+ resume: () => ensureSuccess(resume(workflow, executionId))
228
+ };
229
+ })));
238
230
  },
239
231
  execute: ({
240
232
  discard,
@@ -308,17 +300,19 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
308
300
  const instance = Context.get(context, WorkflowInstance);
309
301
  yield* Effect.annotateCurrentSpan("executionId", instance.executionId);
310
302
  const activityId = `${instance.executionId}/${activity.name}`;
311
- activities.set(activityId, {
312
- activity,
313
- runtime
314
- });
315
- const latch = activityLatches.get(activityId);
316
- if (latch) {
317
- yield* latch.release;
318
- activityLatches.delete(activityId);
319
- }
320
303
  const client = (yield* RcMap.get(clientsPartial, instance.workflow.name))(instance.executionId);
321
304
  while (true) {
305
+ if (!activities.has(activityId)) {
306
+ activities.set(activityId, {
307
+ activity,
308
+ runtime
309
+ });
310
+ const latch = activityLatches.get(activityId);
311
+ if (latch) {
312
+ yield* latch.release;
313
+ activityLatches.delete(activityId);
314
+ }
315
+ }
322
316
  const result = yield* Effect.orDie(client.activity({
323
317
  name: activity.name,
324
318
  attempt
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","RpcServer","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Cause","Context","DateTime","Duration","Effect","Fiber","FiberId","Layer","Option","PrimaryKey","RcMap","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","partialEntities","ensureEntity","workflow","entity","get","name","makeWorkflowEntity","set","ensurePartialEntity","workflowName","makePartialWorkflowEntity","activities","interruptedActivities","Set","activityLatches","clients","lookup","fnUntraced","dieMessage","client","idleTimeToLive","clientsPartial","clockClient","ClockEntity","requestIdFor","options","shardGroup","annotations","ShardGroup","executionId","entityId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","of","register","execute","engine","suspend","has","logWarning","annotateLogs","package","module","registerEntity","CurrentAddress","run","request","instance","initial","payload","parent","payloadParentKey","payloadSchema","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","withFiberRuntime","fiber","interruptible","interrupt","intoResult","provideService","activityId","delete","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","catchAllCause","cause","interruptors","ids","Array","from","flat","includes","fiberIdClientInterrupt","add","succeed","Suspended","failCause","sync","wrap","fork","uninterruptible","deferred","poll","exitSchema","protocol","requests","oreply","undefined","decode","nonSuspendedReply","isSome","deferredDone","deferredName","while","e","activityExecute","annotateCurrentSpan","release","result","tap","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","Uninterruptible","fields","optional","Struct","successSchema","errorSchema","DeferredRpc","ResumeRpc","annotateContext","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","RpcServer","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Cause","Context","DateTime","Duration","Effect","Fiber","FiberId","Layer","Option","PrimaryKey","RcMap","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","partialEntities","ensureEntity","workflow","entity","get","name","makeWorkflowEntity","set","ensurePartialEntity","workflowName","makePartialWorkflowEntity","activities","interruptedActivities","Set","activityLatches","clients","lookup","fnUntraced","dieMessage","client","idleTimeToLive","clientsPartial","clockClient","ClockEntity","requestIdFor","options","shardGroup","annotations","ShardGroup","executionId","entityId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","of","register","execute","engine","suspend","registerEntity","CurrentAddress","run","request","instance","initial","payload","parent","payloadParentKey","payloadSchema","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","withFiberRuntime","fiber","interruptible","interrupt","intoResult","provideService","activityId","delete","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","catchAllCause","cause","interruptors","ids","Array","from","flat","includes","fiberIdClientInterrupt","add","succeed","Suspended","failCause","sync","wrap","fork","uninterruptible","deferred","poll","exitSchema","protocol","requests","oreply","undefined","decode","nonSuspendedReply","isSome","deferredDone","deferredName","while","e","activityExecute","annotateCurrentSpan","has","release","result","tap","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","Uninterruptible","fields","optional","Struct","successSchema","errorSchema","DeferredRpc","ResumeRpc","annotateContext","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -63,7 +63,7 @@ const Proto = {
63
63
  return shardingTag.pipe(Effect.flatMap(sharding => sharding.makeClient(this)));
64
64
  },
65
65
  toLayer(build, options) {
66
- return shardingTag.pipe(Effect.flatMap(sharding => sharding.registerEntity(this, Effect.isEffect(build) ? build : Effect.succeed(build), options)), Layer.effectDiscard);
66
+ return shardingTag.pipe(Effect.flatMap(sharding => sharding.registerEntity(this, Effect.isEffect(build) ? build : Effect.succeed(build), options)), Layer.scopedDiscard);
67
67
  },
68
68
  of: identity,
69
69
  toLayerMailbox(build, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","names":["RpcClient","RpcGroup","RpcServer","Arr","Context","Data","Effect","Equal","Exit","identity","Hash","Layer","Mailbox","Option","Predicate","Scope","ShardGroup","EntityAddress","EntityType","Envelope","hashString","ResourceMap","RunnerAddress","ShardId","ShardingConfig","Snowflake","TypeId","Symbol","for","isEntity","u","hasProperty","Proto","symbol","structure","type","that","annotate","tag","value","fromRpcGroup","protocol","annotateRpcs","annotateContext","context","annotateRpcsContext","getShardId","entityId","map","shardingTag","sharding","getShardGroup","client","pipe","flatMap","makeClient","toLayer","build","options","registerEntity","isEffect","succeed","effectDiscard","of","toLayerMailbox","buildHandlers","gen","behaviour","mailbox","make","handler","envelope","async","resume","unsafeOffer","resumes","set","handlers","rpc","requests","keys","Map","complete","request","exit","sync","get","delete","replier","fail","error","failCause","cause","catchAllCause","values","void","interruptible","forkScoped","concurrency","self","Object","create","annotations","CurrentAddress","Tag","CurrentRunnerAddress","Request","Class","lastSentChunkValue","lastSentChunk","chunk","lastNonEmpty","nextSequence","isNone","sequence","GenericTag","makeTestClient","fnUntraced","entity","layer","config","makeShardId","Math","abs","shardsPerGroup","snowflakeGen","makeGenerator","runnerAddress","host","port","entityMap","contextWith","toHandlersContext","provide","add","omit","entityEntry","dieMessage","address","entityType","shardId","provideService","server","makeNoSerialization","onFromServer","response","write","supportsAck","generateRequestId","unsafeNext","onFromClient","message","_tag","payload","requestId","id","none"],"sources":["../../src/Entity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Entity.js","names":["RpcClient","RpcGroup","RpcServer","Arr","Context","Data","Effect","Equal","Exit","identity","Hash","Layer","Mailbox","Option","Predicate","Scope","ShardGroup","EntityAddress","EntityType","Envelope","hashString","ResourceMap","RunnerAddress","ShardId","ShardingConfig","Snowflake","TypeId","Symbol","for","isEntity","u","hasProperty","Proto","symbol","structure","type","that","annotate","tag","value","fromRpcGroup","protocol","annotateRpcs","annotateContext","context","annotateRpcsContext","getShardId","entityId","map","shardingTag","sharding","getShardGroup","client","pipe","flatMap","makeClient","toLayer","build","options","registerEntity","isEffect","succeed","scopedDiscard","of","toLayerMailbox","buildHandlers","gen","behaviour","mailbox","make","handler","envelope","async","resume","unsafeOffer","resumes","set","handlers","rpc","requests","keys","Map","complete","request","exit","sync","get","delete","replier","fail","error","failCause","cause","catchAllCause","values","void","interruptible","forkScoped","concurrency","self","Object","create","annotations","CurrentAddress","Tag","CurrentRunnerAddress","Request","Class","lastSentChunkValue","lastSentChunk","chunk","lastNonEmpty","nextSequence","isNone","sequence","GenericTag","makeTestClient","fnUntraced","entity","layer","config","makeShardId","Math","abs","shardsPerGroup","snowflakeGen","makeGenerator","runnerAddress","host","port","entityMap","contextWith","toHandlersContext","provide","add","omit","entityEntry","dieMessage","address","entityType","shardId","provideService","server","makeNoSerialization","onFromServer","response","write","supportsAck","generateRequestId","unsafeNext","onFromClient","message","_tag","payload","requestId","id","none"],"sources":["../../src/Entity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -209,12 +209,6 @@ const make = /*#__PURE__*/Effect.gen(function* () {
209
209
  });
210
210
  const send = Effect.catchAllCause(Effect.suspend(() => {
211
211
  const message = messages[index];
212
- // if we are shutting down, we don't accept new requests
213
- if (message._tag === "IncomingRequest" && isShutdown.current) {
214
- if (isShutdown.current) {
215
- return Effect.void;
216
- }
217
- }
218
212
  const address = message.envelope.address;
219
213
  if (!MutableHashSet.has(acquiredShards, address.shardId)) {
220
214
  return Effect.void;
@@ -224,15 +218,17 @@ const make = /*#__PURE__*/Effect.gen(function* () {
224
218
  // reset address in the case that the entity is slow to register
225
219
  MutableHashSet.add(resetAddresses, address);
226
220
  return Effect.void;
227
- } else if (state.closed) {
221
+ } else if (state.status === "closed") {
228
222
  return Effect.void;
229
223
  }
230
224
  const isProcessing = state.manager.isProcessingFor(message);
231
- // If the message might affect a currently processing request, we
232
- // send it to the entity manager to be processed.
233
225
  if (message._tag === "IncomingEnvelope" && isProcessing) {
226
+ // If the message might affect a currently processing request, we
227
+ // send it to the entity manager to be processed.
234
228
  return state.manager.send(message);
235
- } else if (isProcessing) {
229
+ } else if (isProcessing || state.status === "closing") {
230
+ // If the request is already processing, we skip it.
231
+ // Or if the entity is closing, we skip all incoming messages.
236
232
  return Effect.void;
237
233
  } else if (message._tag === "IncomingRequest" && pendingNotifications.has(message.envelope.requestId)) {
238
234
  const entry = pendingNotifications.get(message.envelope.requestId);
@@ -417,7 +413,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
417
413
  const state = entityManagers.get(address.entityType);
418
414
  if (!state) {
419
415
  return Effect.flatMap(waitForEntityManager(address.entityType), loop);
420
- } else if (state.closed || isShutdown.current && message._tag === "IncomingRequest") {
416
+ } else if (state.status === "closed" || state.status === "closing" && message._tag === "IncomingRequest") {
421
417
  // if we are shutting down, we don't accept new requests
422
418
  return Effect.fail(new EntityNotAssignedToRunner({
423
419
  address
@@ -435,7 +431,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
435
431
  const state = entityManagers.get(address.entityType);
436
432
  if (!state) {
437
433
  return Effect.flatMap(waitForEntityManager(address.entityType), loop);
438
- } else if (state.closed || !isEntityOnLocalShards(address)) {
434
+ } else if (state.status === "closed" || !isEntityOnLocalShards(address)) {
439
435
  return Effect.fail(new EntityNotAssignedToRunner({
440
436
  address
441
437
  }));
@@ -811,6 +807,11 @@ const make = /*#__PURE__*/Effect.gen(function* () {
811
807
  yield* Effect.logDebug("Starting singleton", address);
812
808
  yield* FiberMap.run(singletonFibers, address, wrappedRun);
813
809
  }
810
+ yield* Effect.addFinalizer(() => {
811
+ const map = singletons.get(address.shardId);
812
+ MutableHashMap.remove(map, address);
813
+ return FiberMap.remove(singletonFibers, address);
814
+ });
814
815
  }, withSingletonLock);
815
816
  const syncSingletons = withSingletonLock(Effect.gen(function* () {
816
817
  for (const [shardId, map] of singletons) {
@@ -835,9 +836,9 @@ const make = /*#__PURE__*/Effect.gen(function* () {
835
836
  const entityManagerLatches = new Map();
836
837
  const registerEntity = Effect.fnUntraced(function* (entity, build, options) {
837
838
  if (Option.isNone(config.runnerAddress) || entityManagers.has(entity.type)) return;
838
- const scope = yield* Scope.make();
839
+ const scope = yield* Effect.scope;
839
840
  yield* Scope.addFinalizer(scope, Effect.sync(() => {
840
- state.closed = true;
841
+ state.status = "closed";
841
842
  }));
842
843
  const manager = yield* EntityManager.make(entity, build, {
843
844
  ...options,
@@ -847,10 +848,16 @@ const make = /*#__PURE__*/Effect.gen(function* () {
847
848
  }).pipe(Effect.provide(context.pipe(Context.add(EntityReaper, reaper), Context.add(Scope.Scope, scope), Context.add(Snowflake.Generator, snowflakeGen))));
848
849
  const state = {
849
850
  entity,
850
- scope,
851
- closed: false,
851
+ status: "alive",
852
852
  manager
853
853
  };
854
+ yield* Scope.addFinalizer(scope, Effect.fiberIdWith(id => {
855
+ state.status = "closing";
856
+ internalInterruptors.add(id);
857
+ // if preemptive shutdown is enabled, we start shutting down Sharding
858
+ // too
859
+ return config.preemptiveShutdown ? shutdown() : Effect.void;
860
+ }));
854
861
  // register entities while storage is idle
855
862
  // this ensures message order is preserved
856
863
  yield* withStorageReadLock(Effect.sync(() => {
@@ -864,12 +871,6 @@ const make = /*#__PURE__*/Effect.gen(function* () {
864
871
  entity
865
872
  }));
866
873
  });
867
- yield* Scope.addFinalizerExit(shardingScope, exit => Effect.forEach(entityManagers.values(), state => Effect.catchAllCause(Scope.close(state.scope, exit), cause => Effect.annotateLogs(Effect.logError("Error closing entity manager", cause), {
868
- entity: state.entity.type
869
- })), {
870
- concurrency: "unbounded",
871
- discard: true
872
- }));
873
874
  const waitForEntityManager = entityType => {
874
875
  let latch = entityManagerLatches.get(entityType);
875
876
  if (!latch) {
@@ -911,18 +912,22 @@ const make = /*#__PURE__*/Effect.gen(function* () {
911
912
  })));
912
913
  }
913
914
  // --- Finalization ---
914
- yield* Scope.addFinalizerExit(shardingScope, Effect.fnUntraced(function* (exit) {
915
- yield* Effect.logDebug("Shutting down", exit._tag === "Success" ? {} : exit.cause).pipe(Effect.annotateLogs({
916
- package: "@effect/cluster",
917
- module: "Sharding"
918
- }));
915
+ const shutdown = Effect.fnUntraced(function* (exit) {
916
+ if (exit) {
917
+ yield* Effect.logDebug("Shutting down", exit._tag === "Failure" ? exit.cause : {}).pipe(Effect.annotateLogs({
918
+ package: "@effect/cluster",
919
+ module: "Sharding"
920
+ }));
921
+ }
919
922
  const fiberId = yield* Effect.fiberId;
920
- MutableRef.set(isShutdown, true);
921
923
  internalInterruptors.add(fiberId);
924
+ if (isShutdown.current) return;
925
+ MutableRef.set(isShutdown, true);
922
926
  if (selfRunner) {
923
927
  yield* Effect.ignore(runnerStorage.unregister(selfRunner.address));
924
928
  }
925
- }));
929
+ });
930
+ yield* Scope.addFinalizerExit(shardingScope, shutdown);
926
931
  const activeEntityCount = Effect.gen(function* () {
927
932
  let count = 0;
928
933
  for (const state of entityManagers.values()) {