@effect/cluster 0.48.11 → 0.48.12

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.
@@ -46,6 +46,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
46
46
  const storage = yield* _MessageStorage.MessageStorage;
47
47
  const workflows = new Map();
48
48
  const entities = new Map();
49
+ const partialEntities = new Map();
49
50
  const ensureEntity = workflow => {
50
51
  let entity = entities.get(workflow.name);
51
52
  if (!entity) {
@@ -55,6 +56,14 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
55
56
  }
56
57
  return entity;
57
58
  };
59
+ const ensurePartialEntity = workflowName => {
60
+ let entity = partialEntities.get(workflowName);
61
+ if (!entity) {
62
+ entity = makePartialWorkflowEntity(workflowName);
63
+ partialEntities.set(workflowName, entity);
64
+ }
65
+ return entity;
66
+ };
58
67
  const activities = new Map();
59
68
  const activityLatches = new Map();
60
69
  const clients = yield* RcMap.make({
@@ -67,6 +76,13 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
67
76
  }),
68
77
  idleTimeToLive: "5 minutes"
69
78
  });
79
+ const clientsPartial = yield* RcMap.make({
80
+ lookup: Effect.fnUntraced(function* (workflowName) {
81
+ const entity = entities.get(workflowName) ?? ensurePartialEntity(workflowName);
82
+ return yield* entity.client;
83
+ }),
84
+ idleTimeToLive: "5 minutes"
85
+ });
70
86
  const clockClient = yield* ClockEntity.client;
71
87
  const requestIdFor = Effect.fnUntraced(function* (options) {
72
88
  const shardGroup = Context.get(options.workflow.annotations, ClusterSchema.ShardGroup)(options.executionId);
@@ -143,7 +159,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
143
159
  yield* sharding.pollStorage;
144
160
  });
145
161
  const sendResumeParent = Effect.fnUntraced(function* (options) {
146
- const client = (yield* RcMap.get(clients, options.workflowName))(options.executionId);
162
+ const client = (yield* RcMap.get(clientsPartial, options.workflowName))(options.executionId);
147
163
  return yield* client.resume(void 0, {
148
164
  discard: true
149
165
  });
@@ -251,6 +267,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
251
267
  return yield* exit;
252
268
  }, Effect.orDie),
253
269
  interrupt: Effect.fnUntraced(function* (workflow, executionId) {
270
+ ensureEntity(workflow);
254
271
  const reply = yield* requestReply({
255
272
  workflow,
256
273
  entityType: `Workflow/${workflow.name}`,
@@ -307,7 +324,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
307
324
  yield* latch.release;
308
325
  activityLatches.delete(activityId);
309
326
  }
310
- const client = (yield* RcMap.get(clients, instance.workflow.name))(instance.executionId);
327
+ const client = (yield* RcMap.get(clientsPartial, instance.workflow.name))(instance.executionId);
311
328
  while (true) {
312
329
  const result = yield* Effect.orDie(client.activity({
313
330
  name: activity.name,
@@ -359,7 +376,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
359
376
  exit,
360
377
  workflowName
361
378
  }) {
362
- const client = yield* RcMap.get(clients, workflowName);
379
+ const client = yield* RcMap.get(clientsPartial, workflowName);
363
380
  return yield* Effect.orDie(client(executionId).deferred({
364
381
  name: deferredName,
365
382
  exit
@@ -418,7 +435,13 @@ const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`,
418
435
  success: workflow.successSchema,
419
436
  error: workflow.errorSchema
420
437
  })
421
- }).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), Rpc.make("deferred", {
438
+ }).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), DeferredRpc, ResumeRpc, ActivityRpc]).annotateContext(workflow.annotations);
439
+ const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
440
+ success: Schema.Unknown,
441
+ failure: Schema.Unknown,
442
+ defect: Schema.Defect
443
+ }));
444
+ const DeferredRpc = /*#__PURE__*/Rpc.make("deferred", {
422
445
  payload: {
423
446
  name: Schema.String,
424
447
  exit: ExitUnknown
@@ -427,13 +450,10 @@ const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`,
427
450
  name
428
451
  }) => name,
429
452
  success: ExitUnknown
430
- }).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), Rpc.make("resume").annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), ActivityRpc]).annotateContext(workflow.annotations);
453
+ }).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true);
454
+ const ResumeRpc = /*#__PURE__*/Rpc.make("resume").annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true);
455
+ const makePartialWorkflowEntity = workflowName => Entity.make(`Workflow/${workflowName}`, [DeferredRpc, ResumeRpc, ActivityRpc]);
431
456
  const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
432
- const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
433
- success: Schema.Unknown,
434
- failure: Schema.Unknown,
435
- defect: Schema.Defect
436
- }));
437
457
  class ClockPayload extends /*#__PURE__*/Schema.Class(`Workflow/DurableClock/Run`)({
438
458
  name: Schema.String,
439
459
  workflowName: Schema.String,
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","_interopRequireWildcard","require","_workflow","Activity","DurableClock","Workflow","_WorkflowEngine","Arr","Context","DateTime","Duration","Effect","Layer","Option","PrimaryKey","RcMap","Record","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","_EntityAddress","_EntityId","_EntityType","_MessageStorage","Sharding","Snowflake","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","exports","gen","sharding","storage","MessageStorage","workflows","Map","entities","ensureEntity","workflow","entity","name","makeWorkflowEntity","activities","activityLatches","clients","lookup","fnUntraced","workflowName","dieMessage","client","idleTimeToLive","clockClient","ClockEntity","requestIdFor","options","shardGroup","annotations","ShardGroup","executionId","entityId","EntityId","address","EntityAddress","entityType","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","effect","withSpan","captureStackTrace","attributes","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","WorkflowEngine","of","register","execute","engine","suspend","registerEntity","CurrentAddress","run","request","instance","WorkflowInstance","initial","payload","parent","payloadParentKey","remove","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","interrupt","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","sync","delete","fork","deferred","poll","exitSchema","protocol","requests","oreply","undefined","decode","nonSuspendedReply","isSome","deferredDone","deferredName","while","activityExecute","annotateCurrentSpan","release","result","tap","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","payloadSchema","fields","optional","Struct","successSchema","errorSchema","Uninterruptible","ExitUnknown","annotateContext","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","DurableDeferred","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","_interopRequireWildcard","require","_workflow","Activity","DurableClock","Workflow","_WorkflowEngine","Arr","Context","DateTime","Duration","Effect","Layer","Option","PrimaryKey","RcMap","Record","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","_EntityAddress","_EntityId","_EntityType","_MessageStorage","Sharding","Snowflake","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","exports","gen","sharding","storage","MessageStorage","workflows","Map","entities","partialEntities","ensureEntity","workflow","entity","name","makeWorkflowEntity","ensurePartialEntity","workflowName","makePartialWorkflowEntity","activities","activityLatches","clients","lookup","fnUntraced","dieMessage","client","idleTimeToLive","clientsPartial","clockClient","ClockEntity","requestIdFor","options","shardGroup","annotations","ShardGroup","executionId","entityId","EntityId","address","EntityAddress","entityType","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","effect","withSpan","captureStackTrace","attributes","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","WorkflowEngine","of","register","execute","engine","suspend","registerEntity","CurrentAddress","run","request","instance","WorkflowInstance","initial","payload","parent","payloadParentKey","remove","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","interrupt","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","sync","delete","fork","deferred","poll","exitSchema","protocol","requests","oreply","undefined","decode","nonSuspendedReply","isSome","deferredDone","deferredName","while","activityExecute","annotateCurrentSpan","release","result","tap","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","payloadSchema","fields","optional","Struct","successSchema","errorSchema","Uninterruptible","DeferredRpc","ResumeRpc","annotateContext","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","DurableDeferred","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterWorkflowEngine.d.ts","sourceRoot":"","sources":["../../src/ClusterWorkflowEngine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAKlF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAOvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAOvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAGzC;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;uBAXd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;4EAwdF,CAAA;AA8GF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,cAAc,EACd,KAAK,EACL,QAAQ,CAAC,QAAQ,GAAG,cAAc,CAGnC,CAAA"}
1
+ {"version":3,"file":"ClusterWorkflowEngine.d.ts","sourceRoot":"","sources":["../../src/ClusterWorkflowEngine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAKlF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAOvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAOvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAGzC;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;uBAXd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;4EAqfF,CAAA;AAuHF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,cAAc,EACd,KAAK,EACL,QAAQ,CAAC,QAAQ,GAAG,cAAc,CAGnC,CAAA"}
@@ -38,6 +38,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
38
38
  const storage = yield* MessageStorage;
39
39
  const workflows = new Map();
40
40
  const entities = new Map();
41
+ const partialEntities = new Map();
41
42
  const ensureEntity = workflow => {
42
43
  let entity = entities.get(workflow.name);
43
44
  if (!entity) {
@@ -47,6 +48,14 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
47
48
  }
48
49
  return entity;
49
50
  };
51
+ const ensurePartialEntity = workflowName => {
52
+ let entity = partialEntities.get(workflowName);
53
+ if (!entity) {
54
+ entity = makePartialWorkflowEntity(workflowName);
55
+ partialEntities.set(workflowName, entity);
56
+ }
57
+ return entity;
58
+ };
50
59
  const activities = new Map();
51
60
  const activityLatches = new Map();
52
61
  const clients = yield* RcMap.make({
@@ -59,6 +68,13 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
59
68
  }),
60
69
  idleTimeToLive: "5 minutes"
61
70
  });
71
+ const clientsPartial = yield* RcMap.make({
72
+ lookup: Effect.fnUntraced(function* (workflowName) {
73
+ const entity = entities.get(workflowName) ?? ensurePartialEntity(workflowName);
74
+ return yield* entity.client;
75
+ }),
76
+ idleTimeToLive: "5 minutes"
77
+ });
62
78
  const clockClient = yield* ClockEntity.client;
63
79
  const requestIdFor = Effect.fnUntraced(function* (options) {
64
80
  const shardGroup = Context.get(options.workflow.annotations, ClusterSchema.ShardGroup)(options.executionId);
@@ -135,7 +151,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
135
151
  yield* sharding.pollStorage;
136
152
  });
137
153
  const sendResumeParent = Effect.fnUntraced(function* (options) {
138
- const client = (yield* RcMap.get(clients, options.workflowName))(options.executionId);
154
+ const client = (yield* RcMap.get(clientsPartial, options.workflowName))(options.executionId);
139
155
  return yield* client.resume(void 0, {
140
156
  discard: true
141
157
  });
@@ -243,6 +259,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
243
259
  return yield* exit;
244
260
  }, Effect.orDie),
245
261
  interrupt: Effect.fnUntraced(function* (workflow, executionId) {
262
+ ensureEntity(workflow);
246
263
  const reply = yield* requestReply({
247
264
  workflow,
248
265
  entityType: `Workflow/${workflow.name}`,
@@ -299,7 +316,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
299
316
  yield* latch.release;
300
317
  activityLatches.delete(activityId);
301
318
  }
302
- const client = (yield* RcMap.get(clients, instance.workflow.name))(instance.executionId);
319
+ const client = (yield* RcMap.get(clientsPartial, instance.workflow.name))(instance.executionId);
303
320
  while (true) {
304
321
  const result = yield* Effect.orDie(client.activity({
305
322
  name: activity.name,
@@ -351,7 +368,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
351
368
  exit,
352
369
  workflowName
353
370
  }) {
354
- const client = yield* RcMap.get(clients, workflowName);
371
+ const client = yield* RcMap.get(clientsPartial, workflowName);
355
372
  return yield* Effect.orDie(client(executionId).deferred({
356
373
  name: deferredName,
357
374
  exit
@@ -410,7 +427,13 @@ const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`,
410
427
  success: workflow.successSchema,
411
428
  error: workflow.errorSchema
412
429
  })
413
- }).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), Rpc.make("deferred", {
430
+ }).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), DeferredRpc, ResumeRpc, ActivityRpc]).annotateContext(workflow.annotations);
431
+ const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
432
+ success: Schema.Unknown,
433
+ failure: Schema.Unknown,
434
+ defect: Schema.Defect
435
+ }));
436
+ const DeferredRpc = /*#__PURE__*/Rpc.make("deferred", {
414
437
  payload: {
415
438
  name: Schema.String,
416
439
  exit: ExitUnknown
@@ -419,13 +442,10 @@ const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`,
419
442
  name
420
443
  }) => name,
421
444
  success: ExitUnknown
422
- }).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), Rpc.make("resume").annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), ActivityRpc]).annotateContext(workflow.annotations);
445
+ }).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true);
446
+ const ResumeRpc = /*#__PURE__*/Rpc.make("resume").annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true);
447
+ const makePartialWorkflowEntity = workflowName => Entity.make(`Workflow/${workflowName}`, [DeferredRpc, ResumeRpc, ActivityRpc]);
423
448
  const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
424
- const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
425
- success: Schema.Unknown,
426
- failure: Schema.Unknown,
427
- defect: Schema.Defect
428
- }));
429
449
  class ClockPayload extends /*#__PURE__*/Schema.Class(`Workflow/DurableClock/Run`)({
430
450
  name: Schema.String,
431
451
  workflowName: Schema.String,
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Context","DateTime","Duration","Effect","Layer","Option","PrimaryKey","RcMap","Record","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","ensureEntity","workflow","entity","get","name","makeWorkflowEntity","set","activities","activityLatches","clients","lookup","fnUntraced","workflowName","dieMessage","client","idleTimeToLive","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","effect","withSpan","captureStackTrace","attributes","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","of","register","execute","engine","suspend","has","registerEntity","CurrentAddress","run","request","instance","initial","payload","parent","payloadParentKey","remove","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","interrupt","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","sync","delete","fork","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","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","payloadSchema","fields","optional","Struct","successSchema","errorSchema","Uninterruptible","ExitUnknown","annotateContext","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","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Context","DateTime","Duration","Effect","Layer","Option","PrimaryKey","RcMap","Record","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","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","effect","withSpan","captureStackTrace","attributes","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","of","register","execute","engine","suspend","has","registerEntity","CurrentAddress","run","request","instance","initial","payload","parent","payloadParentKey","remove","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","interrupt","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","sync","delete","fork","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","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","payloadSchema","fields","optional","Struct","successSchema","errorSchema","Uninterruptible","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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/cluster",
3
- "version": "0.48.11",
3
+ "version": "0.48.12",
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.90.10",
15
- "@effect/rpc": "^0.69.3",
16
15
  "@effect/sql": "^0.44.2",
17
- "effect": "^3.17.13",
18
- "@effect/workflow": "^0.9.5"
16
+ "@effect/rpc": "^0.69.3",
17
+ "@effect/workflow": "^0.9.5",
18
+ "effect": "^3.17.13"
19
19
  },
20
20
  "publishConfig": {
21
21
  "provenance": true
@@ -70,6 +70,19 @@ export const make = Effect.gen(function*() {
70
70
  | Rpc.Rpc<"resume">
71
71
  >
72
72
  >()
73
+ const partialEntities = new Map<
74
+ string,
75
+ Entity.Entity<
76
+ string,
77
+ | Rpc.Rpc<"deferred", Schema.Struct<{ name: typeof Schema.String; exit: typeof ExitUnknown }>, typeof ExitUnknown>
78
+ | Rpc.Rpc<
79
+ "activity",
80
+ Schema.Struct<{ name: typeof Schema.String; attempt: typeof Schema.Number }>,
81
+ Schema.Schema<Workflow.Result<any, any>>
82
+ >
83
+ | Rpc.Rpc<"resume">
84
+ >
85
+ >()
73
86
  const ensureEntity = (workflow: Workflow.Any) => {
74
87
  let entity = entities.get(workflow.name)
75
88
  if (!entity) {
@@ -79,6 +92,14 @@ export const make = Effect.gen(function*() {
79
92
  }
80
93
  return entity!
81
94
  }
95
+ const ensurePartialEntity = (workflowName: string) => {
96
+ let entity = partialEntities.get(workflowName)
97
+ if (!entity) {
98
+ entity = makePartialWorkflowEntity(workflowName) as any
99
+ partialEntities.set(workflowName, entity as any)
100
+ }
101
+ return entity!
102
+ }
82
103
 
83
104
  const activities = new Map<string, {
84
105
  readonly activity: Activity.Any
@@ -95,6 +116,13 @@ export const make = Effect.gen(function*() {
95
116
  }),
96
117
  idleTimeToLive: "5 minutes"
97
118
  })
119
+ const clientsPartial = yield* RcMap.make({
120
+ lookup: Effect.fnUntraced(function*(workflowName: string) {
121
+ const entity = entities.get(workflowName) ?? ensurePartialEntity(workflowName)
122
+ return yield* entity.client
123
+ }),
124
+ idleTimeToLive: "5 minutes"
125
+ })
98
126
  const clockClient = yield* ClockEntity.client
99
127
 
100
128
  const requestIdFor = Effect.fnUntraced(function*(options: {
@@ -211,7 +239,7 @@ export const make = Effect.gen(function*() {
211
239
  readonly workflowName: string
212
240
  readonly executionId: string
213
241
  }) {
214
- const client = (yield* RcMap.get(clients, options.workflowName))(options.executionId)
242
+ const client = (yield* RcMap.get(clientsPartial, options.workflowName))(options.executionId)
215
243
  return yield* client.resume(void 0, { discard: true })
216
244
  }, Effect.scoped)
217
245
 
@@ -342,6 +370,7 @@ export const make = Effect.gen(function*() {
342
370
 
343
371
  interrupt: Effect.fnUntraced(
344
372
  function*(this: WorkflowEngine["Type"], workflow, executionId) {
373
+ ensureEntity(workflow)
345
374
  const reply = yield* requestReply({
346
375
  workflow,
347
376
  entityType: `Workflow/${workflow.name}`,
@@ -403,7 +432,7 @@ export const make = Effect.gen(function*() {
403
432
  yield* latch.release
404
433
  activityLatches.delete(activityId)
405
434
  }
406
- const client = (yield* RcMap.get(clients, instance.workflow.name))(instance.executionId)
435
+ const client = (yield* RcMap.get(clientsPartial, instance.workflow.name))(instance.executionId)
407
436
  while (true) {
408
437
  const result = yield* Effect.orDie(client.activity({ name: activity.name, attempt }))
409
438
  // If the activity has suspended and did not execute, we need to resume
@@ -465,7 +494,7 @@ export const make = Effect.gen(function*() {
465
494
 
466
495
  deferredDone: Effect.fnUntraced(
467
496
  function*({ deferredName, executionId, exit, workflowName }) {
468
- const client = yield* RcMap.get(clients, workflowName)
497
+ const client = yield* RcMap.get(clientsPartial, workflowName)
469
498
  return yield* Effect.orDie(
470
499
  client(executionId).deferred({
471
500
  name: deferredName,
@@ -544,32 +573,41 @@ const makeWorkflowEntity = (workflow: Workflow.Any) =>
544
573
  .annotate(ClusterSchema.Persisted, true)
545
574
  .annotate(ClusterSchema.Uninterruptible, true),
546
575
 
547
- Rpc.make("deferred", {
548
- payload: {
549
- name: Schema.String,
550
- exit: ExitUnknown
551
- },
552
- primaryKey: ({ name }) => name,
553
- success: ExitUnknown
554
- })
555
- .annotate(ClusterSchema.Persisted, true)
556
- .annotate(ClusterSchema.Uninterruptible, true),
557
-
558
- Rpc.make("resume")
559
- .annotate(ClusterSchema.Persisted, true)
560
- .annotate(ClusterSchema.Uninterruptible, true),
561
-
576
+ DeferredRpc,
577
+ ResumeRpc,
562
578
  ActivityRpc
563
579
  ]).annotateContext(workflow.annotations)
564
580
 
565
- const activityPrimaryKey = (activity: string, attempt: number) => `${activity}/${attempt}`
566
-
567
581
  const ExitUnknown = Schema.encodedSchema(Schema.Exit({
568
582
  success: Schema.Unknown,
569
583
  failure: Schema.Unknown,
570
584
  defect: Schema.Defect
571
585
  }))
572
586
 
587
+ const DeferredRpc = Rpc.make("deferred", {
588
+ payload: {
589
+ name: Schema.String,
590
+ exit: ExitUnknown
591
+ },
592
+ primaryKey: ({ name }) => name,
593
+ success: ExitUnknown
594
+ })
595
+ .annotate(ClusterSchema.Persisted, true)
596
+ .annotate(ClusterSchema.Uninterruptible, true)
597
+
598
+ const ResumeRpc = Rpc.make("resume")
599
+ .annotate(ClusterSchema.Persisted, true)
600
+ .annotate(ClusterSchema.Uninterruptible, true)
601
+
602
+ const makePartialWorkflowEntity = (workflowName: string) =>
603
+ Entity.make(`Workflow/${workflowName}`, [
604
+ DeferredRpc,
605
+ ResumeRpc,
606
+ ActivityRpc
607
+ ])
608
+
609
+ const activityPrimaryKey = (activity: string, attempt: number) => `${activity}/${attempt}`
610
+
573
611
  class ClockPayload extends Schema.Class<ClockPayload>(`Workflow/DurableClock/Run`)({
574
612
  name: Schema.String,
575
613
  workflowName: Schema.String,