@effect/cluster 0.37.2 → 0.38.1

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 (141) hide show
  1. package/ClusterCron/package.json +6 -0
  2. package/dist/cjs/ClusterCron.js +86 -0
  3. package/dist/cjs/ClusterCron.js.map +1 -0
  4. package/dist/cjs/ClusterSchema.js +9 -1
  5. package/dist/cjs/ClusterSchema.js.map +1 -1
  6. package/dist/cjs/ClusterWorkflowEngine.js +21 -6
  7. package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
  8. package/dist/cjs/Entity.js +6 -1
  9. package/dist/cjs/Entity.js.map +1 -1
  10. package/dist/cjs/EntityAddress.js +8 -1
  11. package/dist/cjs/EntityAddress.js.map +1 -1
  12. package/dist/cjs/MessageStorage.js +6 -4
  13. package/dist/cjs/MessageStorage.js.map +1 -1
  14. package/dist/cjs/Runner.js +15 -0
  15. package/dist/cjs/Runner.js.map +1 -1
  16. package/dist/cjs/RunnerAddress.js +8 -1
  17. package/dist/cjs/RunnerAddress.js.map +1 -1
  18. package/dist/cjs/Runners.js +5 -0
  19. package/dist/cjs/Runners.js.map +1 -1
  20. package/dist/cjs/ShardId.js +75 -7
  21. package/dist/cjs/ShardId.js.map +1 -1
  22. package/dist/cjs/ShardManager.js +63 -43
  23. package/dist/cjs/ShardManager.js.map +1 -1
  24. package/dist/cjs/ShardStorage.js +48 -35
  25. package/dist/cjs/ShardStorage.js.map +1 -1
  26. package/dist/cjs/Sharding.js +45 -37
  27. package/dist/cjs/Sharding.js.map +1 -1
  28. package/dist/cjs/ShardingConfig.js +9 -2
  29. package/dist/cjs/ShardingConfig.js.map +1 -1
  30. package/dist/cjs/Singleton.js +2 -2
  31. package/dist/cjs/Singleton.js.map +1 -1
  32. package/dist/cjs/SingletonAddress.js +2 -2
  33. package/dist/cjs/SingletonAddress.js.map +1 -1
  34. package/dist/cjs/SqlMessageStorage.js +32 -27
  35. package/dist/cjs/SqlMessageStorage.js.map +1 -1
  36. package/dist/cjs/SqlShardStorage.js +14 -14
  37. package/dist/cjs/SqlShardStorage.js.map +1 -1
  38. package/dist/cjs/index.js +3 -1
  39. package/dist/cjs/internal/entityManager.js +2 -1
  40. package/dist/cjs/internal/entityManager.js.map +1 -1
  41. package/dist/cjs/internal/shardManager.js +138 -37
  42. package/dist/cjs/internal/shardManager.js.map +1 -1
  43. package/dist/dts/ClusterCron.d.ts +37 -0
  44. package/dist/dts/ClusterCron.d.ts.map +1 -0
  45. package/dist/dts/ClusterSchema.d.ts +8 -0
  46. package/dist/dts/ClusterSchema.d.ts.map +1 -1
  47. package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
  48. package/dist/dts/Entity.d.ts +10 -0
  49. package/dist/dts/Entity.d.ts.map +1 -1
  50. package/dist/dts/EntityAddress.d.ts +9 -3
  51. package/dist/dts/EntityAddress.d.ts.map +1 -1
  52. package/dist/dts/MessageStorage.d.ts +3 -3
  53. package/dist/dts/MessageStorage.d.ts.map +1 -1
  54. package/dist/dts/Runner.d.ts +15 -0
  55. package/dist/dts/Runner.d.ts.map +1 -1
  56. package/dist/dts/RunnerAddress.d.ts +5 -0
  57. package/dist/dts/RunnerAddress.d.ts.map +1 -1
  58. package/dist/dts/Runners.d.ts.map +1 -1
  59. package/dist/dts/ShardId.d.ts +60 -6
  60. package/dist/dts/ShardId.d.ts.map +1 -1
  61. package/dist/dts/ShardManager.d.ts +13 -13
  62. package/dist/dts/ShardManager.d.ts.map +1 -1
  63. package/dist/dts/ShardStorage.d.ts +11 -14
  64. package/dist/dts/ShardStorage.d.ts.map +1 -1
  65. package/dist/dts/Sharding.d.ts +4 -2
  66. package/dist/dts/Sharding.d.ts.map +1 -1
  67. package/dist/dts/ShardingConfig.d.ts +32 -6
  68. package/dist/dts/ShardingConfig.d.ts.map +1 -1
  69. package/dist/dts/Singleton.d.ts +3 -1
  70. package/dist/dts/Singleton.d.ts.map +1 -1
  71. package/dist/dts/SingletonAddress.d.ts +4 -3
  72. package/dist/dts/SingletonAddress.d.ts.map +1 -1
  73. package/dist/dts/SqlMessageStorage.d.ts +3 -2
  74. package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
  75. package/dist/dts/SqlShardStorage.d.ts +1 -1
  76. package/dist/dts/index.d.ts +4 -0
  77. package/dist/dts/index.d.ts.map +1 -1
  78. package/dist/esm/ClusterCron.js +77 -0
  79. package/dist/esm/ClusterCron.js.map +1 -0
  80. package/dist/esm/ClusterSchema.js +7 -0
  81. package/dist/esm/ClusterSchema.js.map +1 -1
  82. package/dist/esm/ClusterWorkflowEngine.js +21 -6
  83. package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
  84. package/dist/esm/Entity.js +6 -1
  85. package/dist/esm/Entity.js.map +1 -1
  86. package/dist/esm/EntityAddress.js +8 -1
  87. package/dist/esm/EntityAddress.js.map +1 -1
  88. package/dist/esm/MessageStorage.js +6 -4
  89. package/dist/esm/MessageStorage.js.map +1 -1
  90. package/dist/esm/Runner.js +15 -0
  91. package/dist/esm/Runner.js.map +1 -1
  92. package/dist/esm/RunnerAddress.js +8 -1
  93. package/dist/esm/RunnerAddress.js.map +1 -1
  94. package/dist/esm/Runners.js +5 -0
  95. package/dist/esm/Runners.js.map +1 -1
  96. package/dist/esm/ShardId.js +73 -6
  97. package/dist/esm/ShardId.js.map +1 -1
  98. package/dist/esm/ShardManager.js +64 -45
  99. package/dist/esm/ShardManager.js.map +1 -1
  100. package/dist/esm/ShardStorage.js +47 -35
  101. package/dist/esm/ShardStorage.js.map +1 -1
  102. package/dist/esm/Sharding.js +45 -37
  103. package/dist/esm/Sharding.js.map +1 -1
  104. package/dist/esm/ShardingConfig.js +9 -2
  105. package/dist/esm/ShardingConfig.js.map +1 -1
  106. package/dist/esm/Singleton.js +2 -2
  107. package/dist/esm/Singleton.js.map +1 -1
  108. package/dist/esm/SingletonAddress.js +2 -2
  109. package/dist/esm/SingletonAddress.js.map +1 -1
  110. package/dist/esm/SqlMessageStorage.js +32 -27
  111. package/dist/esm/SqlMessageStorage.js.map +1 -1
  112. package/dist/esm/SqlShardStorage.js +14 -14
  113. package/dist/esm/SqlShardStorage.js.map +1 -1
  114. package/dist/esm/index.js +4 -0
  115. package/dist/esm/index.js.map +1 -1
  116. package/dist/esm/internal/entityManager.js +2 -1
  117. package/dist/esm/internal/entityManager.js.map +1 -1
  118. package/dist/esm/internal/shardManager.js +136 -36
  119. package/dist/esm/internal/shardManager.js.map +1 -1
  120. package/package.json +12 -4
  121. package/src/ClusterCron.ts +129 -0
  122. package/src/ClusterSchema.ts +9 -0
  123. package/src/ClusterWorkflowEngine.ts +37 -6
  124. package/src/Entity.ts +20 -1
  125. package/src/EntityAddress.ts +11 -1
  126. package/src/MessageStorage.ts +12 -7
  127. package/src/Runner.ts +18 -0
  128. package/src/RunnerAddress.ts +9 -1
  129. package/src/Runners.ts +5 -0
  130. package/src/ShardId.ts +81 -11
  131. package/src/ShardManager.ts +74 -45
  132. package/src/ShardStorage.ts +57 -49
  133. package/src/Sharding.ts +45 -39
  134. package/src/ShardingConfig.ts +36 -7
  135. package/src/Singleton.ts +5 -2
  136. package/src/SingletonAddress.ts +2 -2
  137. package/src/SqlMessageStorage.ts +36 -30
  138. package/src/SqlShardStorage.ts +15 -15
  139. package/src/index.ts +5 -0
  140. package/src/internal/entityManager.ts +2 -1
  141. package/src/internal/shardManager.ts +158 -52
@@ -4,6 +4,7 @@
4
4
  import * as Equal from "effect/Equal";
5
5
  import * as Hash from "effect/Hash";
6
6
  import * as Schema from "effect/Schema";
7
+ import { ShardId } from "./ShardId.js";
7
8
  /**
8
9
  * @since 1.0.0
9
10
  * @category Address
@@ -15,13 +16,13 @@ export declare const TypeId: unique symbol;
15
16
  */
16
17
  export type TypeId = typeof TypeId;
17
18
  declare const SingletonAddress_base: Schema.Class<SingletonAddress, {
18
- shardId: Schema.brand<typeof Schema.Int, "ShardId">;
19
+ shardId: typeof ShardId;
19
20
  name: typeof Schema.NonEmptyTrimmedString;
20
21
  }, Schema.Struct.Encoded<{
21
- shardId: Schema.brand<typeof Schema.Int, "ShardId">;
22
+ shardId: typeof ShardId;
22
23
  name: typeof Schema.NonEmptyTrimmedString;
23
24
  }>, never, {
24
- readonly shardId: number & import("effect/Brand").Brand<"ShardId">;
25
+ readonly shardId: ShardId;
25
26
  } & {
26
27
  readonly name: string;
27
28
  }, {}, {}>;
@@ -1 +1 @@
1
- {"version":3,"file":"SingletonAddress.d.ts","sourceRoot":"","sources":["../../src/SingletonAddress.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAuD,CAAA;AAEnF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;;;;;;;;;;;;AAElC;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,qBAGpC;IACA;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAU;IAC3B;;OAEG;IACH,CAAC,IAAI,CAAC,MAAM,CAAC;IAGb;;OAEG;IACH,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;CAGhD"}
1
+ {"version":3,"file":"SingletonAddress.d.ts","sourceRoot":"","sources":["../../src/SingletonAddress.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAuD,CAAA;AAEnF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;;;;;;;;;;;;AAElC;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,qBAGpC;IACA;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAU;IAC3B;;OAEG;IACH,CAAC,IAAI,CAAC,MAAM,CAAC;IAGb;;OAEG;IACH,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;CAGhD"}
@@ -10,6 +10,7 @@ import * as Option from "effect/Option";
10
10
  import { PersistenceError } from "./ClusterError.js";
11
11
  import * as MessageStorage from "./MessageStorage.js";
12
12
  import type * as Reply from "./Reply.js";
13
+ import { ShardId } from "./ShardId.js";
13
14
  import type { ShardingConfig } from "./ShardingConfig.js";
14
15
  import * as Snowflake from "./Snowflake.js";
15
16
  /**
@@ -31,9 +32,9 @@ export declare const make: (options?: {
31
32
  readonly id: string;
32
33
  }) => Effect.Effect<Option.Option<Snowflake.Snowflake>, PersistenceError>;
33
34
  readonly registerReplyHandler: <R extends import("@effect/rpc/Rpc").Any>(message: import("./Message.js").OutgoingRequest<R> | import("./Message.js").IncomingRequest<R>) => Effect.Effect<void>;
34
- readonly unprocessedMessages: (shardIds: Iterable<import("./ShardId.js").ShardId>) => Effect.Effect<Array<import("./Message.js").Incoming<any>>, PersistenceError>;
35
+ readonly unprocessedMessages: (shardIds: Iterable<ShardId>) => Effect.Effect<Array<import("./Message.js").Incoming<any>>, PersistenceError>;
35
36
  readonly unprocessedMessagesById: <R extends import("@effect/rpc/Rpc").Any>(messageIds: Iterable<Snowflake.Snowflake>) => Effect.Effect<Array<import("./Message.js").Incoming<R>>, PersistenceError>;
36
- readonly resetShards: (shardIds: Iterable<import("./ShardId.js").ShardId>) => Effect.Effect<void, PersistenceError>;
37
+ readonly resetShards: (shardIds: Iterable<ShardId>) => Effect.Effect<void, PersistenceError>;
37
38
  readonly resetAddress: (address: import("./EntityAddress.js").EntityAddress) => Effect.Effect<void, PersistenceError>;
38
39
  readonly clearAddress: (address: import("./EntityAddress.js").EntityAddress) => Effect.Effect<void, PersistenceError>;
39
40
  }, SqlError, Snowflake.Generator | SqlClient.SqlClient>;
@@ -1 +1 @@
1
- {"version":3,"file":"SqlMessageStorage.d.ts","sourceRoot":"","sources":["../../src/SqlMessageStorage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAI3C;;;GAGG;AACH,eAAO,MAAM,IAAI;sBACG,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;;;;uDAsxBhB,CAAA;AAEtB;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,cAAc,CAAC,cAAc,EAC7B,QAAQ,EACR,SAAS,CAAC,SAAS,GAAG,cAAc,CAGrC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;CACvD,KAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,SAAS,GAAG,cAAc,CAG1F,CAAA"}
1
+ {"version":3,"file":"SqlMessageStorage.d.ts","sourceRoot":"","sources":["../../src/SqlMessageStorage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAI3C;;;GAGG;AACH,eAAO,MAAM,IAAI;sBACG,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;;;;uDA2xBhB,CAAA;AAEtB;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,cAAc,CAAC,cAAc,EAC7B,QAAQ,EACR,SAAS,CAAC,SAAS,GAAG,cAAc,CAGrC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;CACvD,KAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,SAAS,GAAG,cAAc,CAG1F,CAAA"}
@@ -14,7 +14,7 @@ import * as ShardStorage from "./ShardStorage.js";
14
14
  export declare const make: (options?: {
15
15
  readonly prefix?: string | undefined;
16
16
  } | undefined) => Effect.Effect<{
17
- readonly getAssignments: Effect.Effect<ReadonlyMap<import("./ShardId.js").ShardId, import("effect/Option").Option<import("./RunnerAddress.js").RunnerAddress>>, PersistenceError>;
17
+ readonly getAssignments: Effect.Effect<Array<[import("./ShardId.js").ShardId, import("effect/Option").Option<import("./RunnerAddress.js").RunnerAddress>]>, PersistenceError>;
18
18
  readonly saveAssignments: (assignments: Iterable<readonly [import("./ShardId.js").ShardId, import("effect/Option").Option<import("./RunnerAddress.js").RunnerAddress>]>) => Effect.Effect<void, PersistenceError>;
19
19
  readonly getRunners: Effect.Effect<Array<[import("./RunnerAddress.js").RunnerAddress, import("./Runner.js").Runner]>, PersistenceError>;
20
20
  readonly saveRunners: (runners: Iterable<readonly [import("./RunnerAddress.js").RunnerAddress, import("./Runner.js").Runner]>) => Effect.Effect<void, PersistenceError>;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ export * as ClusterCron from "./ClusterCron.js";
1
5
  /**
2
6
  * @since 1.0.0
3
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA;AAEnE;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,yBAAyB,MAAM,gCAAgC,CAAA;AAE3E;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA;AAEnE;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,yBAAyB,MAAM,gCAAgC,CAAA;AAE3E;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Rpc from "@effect/rpc/Rpc";
5
+ import * as Cron from "effect/Cron";
6
+ import * as DateTime from "effect/DateTime";
7
+ import * as Duration from "effect/Duration";
8
+ import * as Effect from "effect/Effect";
9
+ import * as Layer from "effect/Layer";
10
+ import * as Option from "effect/Option";
11
+ import * as PrimaryKey from "effect/PrimaryKey";
12
+ import * as Schedule from "effect/Schedule";
13
+ import * as Schema from "effect/Schema";
14
+ import * as ClusterSchema from "./ClusterSchema.js";
15
+ import { Persisted, Uninterruptible } from "./ClusterSchema.js";
16
+ import * as DeliverAt from "./DeliverAt.js";
17
+ import * as Entity from "./Entity.js";
18
+ import * as Singleton from "./Singleton.js";
19
+ /**
20
+ * @since 1.0.0
21
+ * @category Constructors
22
+ */
23
+ export const make = options => {
24
+ const CronEntity = Entity.make(`ClusterCron/${options.name}`, [Rpc.make("run", {
25
+ payload: CronPayload
26
+ }).annotate(Persisted, true).annotate(Uninterruptible, true)]).annotate(ClusterSchema.ShardGroup, () => options.shardGroup ?? "default");
27
+ const InitialRun = Singleton.make(`ClusterCron/${options.name}`, Effect.gen(function* () {
28
+ const client = (yield* CronEntity.client)("initial");
29
+ const now = yield* DateTime.now;
30
+ const next = Cron.next(options.cron, now);
31
+ yield* client.run({
32
+ dateTime: DateTime.unsafeFromDate(next)
33
+ }, {
34
+ discard: true
35
+ });
36
+ }), {
37
+ shardGroup: options.shardGroup
38
+ });
39
+ const skipIfOlderThan = Option.fromNullable(options.skipIfOlderThan).pipe(Option.map(Duration.decode), Option.getOrElse(() => Duration.days(1)));
40
+ const effect = Effect.fnUntraced(function* (dateTime) {
41
+ const now = yield* DateTime.now;
42
+ if (DateTime.lessThan(dateTime, DateTime.subtractDuration(now, skipIfOlderThan))) {
43
+ return;
44
+ }
45
+ return yield* options.execute;
46
+ }, Effect.orDie);
47
+ const EntityLayer = CronEntity.toLayer(Effect.gen(function* () {
48
+ const makeClient = yield* CronEntity.client;
49
+ return {
50
+ run(request) {
51
+ return Effect.ensuring(effect(request.payload.dateTime), Effect.gen(function* () {
52
+ const now = yield* DateTime.now;
53
+ const next = DateTime.unsafeFromDate(Cron.next(options.cron, options.calculateNextRunFromPrevious ? request.payload.dateTime : now));
54
+ const client = makeClient(DateTime.formatIso(next));
55
+ return yield* client.run({
56
+ dateTime: next
57
+ }, {
58
+ discard: true
59
+ });
60
+ }).pipe(Effect.sandbox, Effect.retry(retryPolicy), Effect.orDie));
61
+ }
62
+ };
63
+ }));
64
+ return Layer.merge(InitialRun, EntityLayer);
65
+ };
66
+ const retryPolicy = /*#__PURE__*/Schedule.exponential(200, 1.5).pipe(/*#__PURE__*/Schedule.union(/*#__PURE__*/Schedule.spaced("1 minute")));
67
+ class CronPayload extends /*#__PURE__*/Schema.Class("@effect/cluster/ClusterCron/CronPayload")({
68
+ dateTime: Schema.DateTimeUtc
69
+ }) {
70
+ [PrimaryKey.symbol]() {
71
+ return "";
72
+ }
73
+ [DeliverAt.symbol]() {
74
+ return this.dateTime;
75
+ }
76
+ }
77
+ //# sourceMappingURL=ClusterCron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClusterCron.js","names":["Rpc","Cron","DateTime","Duration","Effect","Layer","Option","PrimaryKey","Schedule","Schema","ClusterSchema","Persisted","Uninterruptible","DeliverAt","Entity","Singleton","make","options","CronEntity","name","payload","CronPayload","annotate","ShardGroup","shardGroup","InitialRun","gen","client","now","next","cron","run","dateTime","unsafeFromDate","discard","skipIfOlderThan","fromNullable","pipe","map","decode","getOrElse","days","effect","fnUntraced","lessThan","subtractDuration","execute","orDie","EntityLayer","toLayer","makeClient","request","ensuring","calculateNextRunFromPrevious","formatIso","sandbox","retry","retryPolicy","merge","exponential","union","spaced","Class","DateTimeUtc","symbol"],"sources":["../../src/ClusterCron.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,GAAG,MAAM,iBAAiB;AACtC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AACnD,SAASC,SAAS,EAAEC,eAAe,QAAQ,oBAAoB;AAC/D,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAC3C,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;;AAIA,OAAO,MAAMC,IAAI,GAAUC,OA4B1B,IAA6D;EAC5D,MAAMC,UAAU,GAAGJ,MAAM,CAACE,IAAI,CAAC,eAAeC,OAAO,CAACE,IAAI,EAAE,EAAE,CAC5DnB,GAAG,CAACgB,IAAI,CAAC,KAAK,EAAE;IACdI,OAAO,EAAEC;GACV,CAAC,CACCC,QAAQ,CAACX,SAAS,EAAE,IAAI,CAAC,CACzBW,QAAQ,CAACV,eAAe,EAAE,IAAI,CAAC,CACnC,CAAC,CAACU,QAAQ,CAACZ,aAAa,CAACa,UAAU,EAAE,MAAMN,OAAO,CAACO,UAAU,IAAI,SAAS,CAAC;EAE5E,MAAMC,UAAU,GAAGV,SAAS,CAACC,IAAI,CAC/B,eAAeC,OAAO,CAACE,IAAI,EAAE,EAC7Bf,MAAM,CAACsB,GAAG,CAAC,aAAS;IAClB,MAAMC,MAAM,GAAG,CAAC,OAAOT,UAAU,CAACS,MAAM,EAAE,SAAS,CAAC;IACpD,MAAMC,GAAG,GAAG,OAAO1B,QAAQ,CAAC0B,GAAG;IAC/B,MAAMC,IAAI,GAAG5B,IAAI,CAAC4B,IAAI,CAACZ,OAAO,CAACa,IAAI,EAAEF,GAAG,CAAC;IACzC,OAAOD,MAAM,CAACI,GAAG,CAAC;MAChBC,QAAQ,EAAE9B,QAAQ,CAAC+B,cAAc,CAACJ,IAAI;KACvC,EAAE;MAAEK,OAAO,EAAE;IAAI,CAAE,CAAC;EACvB,CAAC,CAAC,EACF;IAAEV,UAAU,EAAEP,OAAO,CAACO;EAAU,CAAE,CACnC;EAED,MAAMW,eAAe,GAAG7B,MAAM,CAAC8B,YAAY,CAACnB,OAAO,CAACkB,eAAe,CAAC,CAACE,IAAI,CACvE/B,MAAM,CAACgC,GAAG,CAACnC,QAAQ,CAACoC,MAAM,CAAC,EAC3BjC,MAAM,CAACkC,SAAS,CAAC,MAAMrC,QAAQ,CAACsC,IAAI,CAAC,CAAC,CAAC,CAAC,CACzC;EAED,MAAMC,MAAM,GAAGtC,MAAM,CAACuC,UAAU,CAAC,WAAUX,QAAsB;IAC/D,MAAMJ,GAAG,GAAG,OAAO1B,QAAQ,CAAC0B,GAAG;IAC/B,IAAI1B,QAAQ,CAAC0C,QAAQ,CAACZ,QAAQ,EAAE9B,QAAQ,CAAC2C,gBAAgB,CAACjB,GAAG,EAAEO,eAAe,CAAC,CAAC,EAAE;MAChF;IACF;IACA,OAAO,OAAOlB,OAAO,CAAC6B,OAAO;EAC/B,CAAC,EAAE1C,MAAM,CAAC2C,KAAK,CAAC;EAEhB,MAAMC,WAAW,GAAG9B,UAAU,CAAC+B,OAAO,CAAC7C,MAAM,CAACsB,GAAG,CAAC,aAAS;IACzD,MAAMwB,UAAU,GAAG,OAAOhC,UAAU,CAACS,MAAM;IAC3C,OAAO;MACLI,GAAGA,CAACoB,OAAO;QACT,OAAO/C,MAAM,CAACgD,QAAQ,CACpBV,MAAM,CAACS,OAAO,CAAC/B,OAAO,CAACY,QAAQ,CAAC,EAChC5B,MAAM,CAACsB,GAAG,CAAC,aAAS;UAClB,MAAME,GAAG,GAAG,OAAO1B,QAAQ,CAAC0B,GAAG;UAC/B,MAAMC,IAAI,GAAG3B,QAAQ,CAAC+B,cAAc,CAAChC,IAAI,CAAC4B,IAAI,CAC5CZ,OAAO,CAACa,IAAI,EACZb,OAAO,CAACoC,4BAA4B,GAAGF,OAAO,CAAC/B,OAAO,CAACY,QAAQ,GAAGJ,GAAG,CACtE,CAAC;UACF,MAAMD,MAAM,GAAGuB,UAAU,CAAChD,QAAQ,CAACoD,SAAS,CAACzB,IAAI,CAAC,CAAC;UACnD,OAAO,OAAOF,MAAM,CAACI,GAAG,CAAC;YAAEC,QAAQ,EAAEH;UAAI,CAAE,EAAE;YAAEK,OAAO,EAAE;UAAI,CAAE,CAAC;QACjE,CAAC,CAAC,CAACG,IAAI,CACLjC,MAAM,CAACmD,OAAO,EACdnD,MAAM,CAACoD,KAAK,CAACC,WAAW,CAAC,EACzBrD,MAAM,CAAC2C,KAAK,CACb,CACF;MACH;KACD;EACH,CAAC,CAAC,CAAC;EAEH,OAAO1C,KAAK,CAACqD,KAAK,CAACjC,UAAU,EAAEuB,WAAW,CAAC;AAC7C,CAAC;AAED,MAAMS,WAAW,gBAAGjD,QAAQ,CAACmD,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAACtB,IAAI,cACrD7B,QAAQ,CAACoD,KAAK,cAACpD,QAAQ,CAACqD,MAAM,CAAC,UAAU,CAAC,CAAC,CAC5C;AAED,MAAMxC,WAAY,sBAAQZ,MAAM,CAACqD,KAAK,CAAc,yCAAyC,CAAC,CAAC;EAC7F9B,QAAQ,EAAEvB,MAAM,CAACsD;CAClB,CAAC;EACA,CAACxD,UAAU,CAACyD,MAAM,IAAC;IACjB,OAAO,EAAE;EACX;EACA,CAACnD,SAAS,CAACmD,MAAM,IAAC;IAChB,OAAO,IAAI,CAAChC,QAAQ;EACtB","ignoreList":[]}
@@ -17,4 +17,11 @@ export class Persisted extends /*#__PURE__*/Context.Reference()("@effect/cluster
17
17
  export class Uninterruptible extends /*#__PURE__*/Context.Reference()("@effect/cluster/ClusterSchema/Uninterruptible", {
18
18
  defaultValue: constFalse
19
19
  }) {}
20
+ /**
21
+ * @since 1.0.0
22
+ * @category Annotations
23
+ */
24
+ export class ShardGroup extends /*#__PURE__*/Context.Reference()("@effect/cluster/ClusterSchema/ShardGroup", {
25
+ defaultValue: () => _ => "default"
26
+ }) {}
20
27
  //# sourceMappingURL=ClusterSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterSchema.js","names":["Context","constFalse","Persisted","Reference","defaultValue","Uninterruptible"],"sources":["../../src/ClusterSchema.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,SAASC,UAAU,QAAQ,iBAAiB;AAE5C;;;;AAIA,OAAM,MAAOC,SAAU,sBAAQF,OAAO,CAACG,SAAS,EAAa,CAAC,yCAAyC,EAAE;EACvGC,YAAY,EAAEH;CACf,CAAC;AAEF;;;;AAIA,OAAM,MAAOI,eACX,sBAAQL,OAAO,CAACG,SAAS,EAAmB,CAAC,+CAA+C,EAAE;EAC5FC,YAAY,EAAEH;CACf,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ClusterSchema.js","names":["Context","constFalse","Persisted","Reference","defaultValue","Uninterruptible","ShardGroup","_"],"sources":["../../src/ClusterSchema.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,SAASC,UAAU,QAAQ,iBAAiB;AAG5C;;;;AAIA,OAAM,MAAOC,SAAU,sBAAQF,OAAO,CAACG,SAAS,EAAa,CAAC,yCAAyC,EAAE;EACvGC,YAAY,EAAEH;CACf,CAAC;AAEF;;;;AAIA,OAAM,MAAOI,eACX,sBAAQL,OAAO,CAACG,SAAS,EAAmB,CAAC,+CAA+C,EAAE;EAC5FC,YAAY,EAAEH;CACf,CAAC;AAGJ;;;;AAIA,OAAM,MAAOK,UAAW,sBAAQN,OAAO,CAACG,SAAS,EAAc,CAAC,0CAA0C,EAAE;EAC1GC,YAAY,EAAEA,CAAA,KAAuCG,CAAC,IAAK;CAC5D,CAAC","ignoreList":[]}
@@ -34,6 +34,7 @@ import * as Snowflake from "./Snowflake.js";
34
34
  export const make = /*#__PURE__*/Effect.gen(function* () {
35
35
  const sharding = yield* Sharding.Sharding;
36
36
  const storage = yield* MessageStorage;
37
+ const workflows = new Map();
37
38
  const entities = new Map();
38
39
  const activities = new Map();
39
40
  const activityLatches = new Map();
@@ -50,11 +51,12 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
50
51
  const clockClient = yield* ClockEntity.client;
51
52
  const deferredClient = yield* DeferredEntity.client;
52
53
  const requestIdFor = Effect.fnUntraced(function* (options) {
54
+ const shardGroup = Context.get(options.workflow.annotations, ClusterSchema.ShardGroup)(options.executionId);
53
55
  const entityId = EntityId.make(options.executionId);
54
56
  const address = new EntityAddress({
55
57
  entityType: EntityType.make(options.entityType),
56
58
  entityId,
57
- shardId: sharding.getShardId(entityId)
59
+ shardId: sharding.getShardId(entityId, shardGroup)
58
60
  });
59
61
  return yield* storage.requestIdForPrimaryKey({
60
62
  address,
@@ -75,6 +77,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
75
77
  });
76
78
  const resetActivityAttempt = Effect.fnUntraced(function* (options) {
77
79
  const requestId = yield* requestIdFor({
80
+ workflow: options.workflow,
78
81
  entityType: `Workflow/${options.workflow.name}`,
79
82
  executionId: options.executionId,
80
83
  tag: "activity",
@@ -87,8 +90,9 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
87
90
  schedule: Schedule.exponential(250)
88
91
  }), Effect.orDie);
89
92
  const clearClock = Effect.fnUntraced(function* (options) {
93
+ const shardGroup = Context.get(options.workflow.annotations, ClusterSchema.ShardGroup)(options.executionId);
90
94
  const entityId = EntityId.make(options.executionId);
91
- const shardId = sharding.getShardId(entityId);
95
+ const shardId = sharding.getShardId(entityId, shardGroup);
92
96
  const clockAddress = new EntityAddress({
93
97
  entityType: ClockEntity.type,
94
98
  entityId,
@@ -105,6 +109,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
105
109
  return Effect.dieMessage(`Workflow ${workflow.name} already registered`);
106
110
  }
107
111
  const entity = makeWorkflowEntity(workflow);
112
+ workflows.set(workflow.name, workflow);
108
113
  entities.set(workflow.name, entity);
109
114
  return sharding.registerEntity(entity, Effect.gen(function* () {
110
115
  const address = yield* Entity.CurrentAddress;
@@ -126,6 +131,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
126
131
  }
127
132
  instance.suspended = false;
128
133
  return Effect.zipRight(Effect.ignore(clearClock({
134
+ workflow,
129
135
  executionId
130
136
  })), Effect.interrupt);
131
137
  }), Effect.orDie);
@@ -165,6 +171,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
165
171
  })), Effect.orDie, Effect.scoped),
166
172
  interrupt: Effect.fnUntraced(function* (workflow, executionId) {
167
173
  const requestId = yield* requestIdFor({
174
+ workflow,
168
175
  entityType: `Workflow/${workflow.name}`,
169
176
  executionId,
170
177
  tag: "run",
@@ -193,7 +200,12 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
193
200
  schedule: Schedule.exponential(250)
194
201
  }), Effect.orDie),
195
202
  resume: Effect.fnUntraced(function* (workflowName, executionId) {
203
+ const workflow = workflows.get(workflowName);
204
+ if (!workflow) {
205
+ return yield* Effect.dieMessage(`WorkflowEngine.resume: ${workflowName} not registered`);
206
+ }
196
207
  const maybeReply = yield* requestReply({
208
+ workflow,
197
209
  entityType: `Workflow/${workflowName}`,
198
210
  executionId,
199
211
  tag: "run",
@@ -245,6 +257,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
245
257
  }
246
258
  }, Effect.scoped),
247
259
  deferredResult: deferred => WorkflowInstance.pipe(Effect.flatMap(instance => requestReply({
260
+ workflow: instance.workflow,
248
261
  entityType: DeferredEntity.type,
249
262
  executionId: instance.executionId,
250
263
  tag: "set",
@@ -279,6 +292,8 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
279
292
  }
280
293
  });
281
294
  });
295
+ const retryPolicy = /*#__PURE__*/Schedule.exponential(200, 1.5).pipe(/*#__PURE__*/Schedule.union(/*#__PURE__*/Schedule.spaced("1 minute")));
296
+ const ensureSuccess = effect => effect.pipe(Effect.sandbox, Effect.retry(retryPolicy), Effect.orDie);
282
297
  const ActivityRpc = /*#__PURE__*/Rpc.make("activity", {
283
298
  payload: {
284
299
  name: Schema.String,
@@ -300,7 +315,7 @@ const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`,
300
315
  success: workflow.successSchema,
301
316
  error: workflow.errorSchema
302
317
  })
303
- }), ActivityRpc]).annotateRpcs(ClusterSchema.Persisted, true).annotateRpcs(ClusterSchema.Uninterruptible, true);
318
+ }), ActivityRpc]).annotateContext(workflow.annotations).annotateRpcs(ClusterSchema.Persisted, true).annotateRpcs(ClusterSchema.Uninterruptible, true);
304
319
  const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
305
320
  const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
306
321
  success: Schema.Unknown,
@@ -332,7 +347,7 @@ const DeferredEntityLayer = /*#__PURE__*/DeferredEntity.toLayer(/*#__PURE__*/Eff
332
347
  const executionId = address.entityId;
333
348
  const client = (yield* DeferredEntity.client)(executionId);
334
349
  return {
335
- set: request => Effect.as(Effect.orDie(client.resume(request.payload, {
350
+ set: request => Effect.as(ensureSuccess(client.resume(request.payload, {
336
351
  discard: true
337
352
  })), request.payload.exit),
338
353
  resume: request => engine.resume(request.payload.workflowName, executionId)
@@ -363,7 +378,7 @@ const ClockEntityLayer = /*#__PURE__*/ClockEntity.toLayer(/*#__PURE__*/Effect.ge
363
378
  name: request.payload.name,
364
379
  duration: Duration.zero
365
380
  }).deferred;
366
- return engine.deferredDone({
381
+ return ensureSuccess(engine.deferredDone({
367
382
  workflowName: request.payload.workflowName,
368
383
  executionId,
369
384
  deferred,
@@ -371,7 +386,7 @@ const ClockEntityLayer = /*#__PURE__*/ClockEntity.toLayer(/*#__PURE__*/Effect.ge
371
386
  _tag: "Success",
372
387
  value: void 0
373
388
  }
374
- });
389
+ }));
375
390
  }
376
391
  };
377
392
  }));
@@ -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","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","entities","Map","activities","activityLatches","clients","lookup","fnUntraced","workflowName","entity","get","dieMessage","client","idleTimeToLive","clockClient","ClockEntity","deferredClient","DeferredEntity","requestIdFor","options","entityId","executionId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","workflow","name","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","of","register","execute","engine","suspend","has","makeWorkflowEntity","set","registerEntity","CurrentAddress","run","request","instance","suspended","payload","onExit","void","deferredResult","InterruptSignal","flatMap","maybeResult","zipRight","ignore","interrupt","scoped","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","context","unsafeMap","CurrentAttempt","key","executeEncoded","provide","unsafeMake","ensuring","sync","delete","fork","discard","nonSuspendedReply","exit","isSome","deferredDone","deferred","while","e","resume","maybeReply","maybeSuspended","activityExecute","release","result","scheduleClock","now","clock","wakeUp","addDuration","duration","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","payloadSchema","fields","successSchema","errorSchema","annotateRpcs","Persisted","Uninterruptible","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","DeferredEntityLayer","toLayer","as","ClockPayload","Class","DateTimeUtcFromNumber","symbol","annotate","ClockEntityLayer","zero","layer","merge","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","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","activities","activityLatches","clients","lookup","fnUntraced","workflowName","entity","get","dieMessage","client","idleTimeToLive","clockClient","ClockEntity","deferredClient","DeferredEntity","requestIdFor","options","shardGroup","workflow","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","name","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","of","register","execute","engine","suspend","has","makeWorkflowEntity","set","registerEntity","CurrentAddress","run","request","instance","suspended","payload","onExit","void","deferredResult","InterruptSignal","flatMap","maybeResult","zipRight","ignore","interrupt","scoped","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","context","unsafeMap","CurrentAttempt","key","executeEncoded","provide","unsafeMake","ensuring","sync","delete","fork","discard","nonSuspendedReply","exit","isSome","deferredDone","deferred","while","e","resume","maybeReply","maybeSuspended","activityExecute","release","result","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","ensureSuccess","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","payloadSchema","fields","successSchema","errorSchema","annotateContext","annotateRpcs","Persisted","Uninterruptible","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","DeferredEntityLayer","toLayer","as","ClockPayload","Class","DateTimeUtcFromNumber","symbol","annotate","ClockEntityLayer","zero","layer","merge","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,GAAG,MAAM,iBAAiB;AACtC,SAASC,eAAe,QAAQ,kBAAkB;AAClD,OAAO,KAAKC,QAAQ,MAAM,2BAA2B;AACrD,OAAO,KAAKC,YAAY,MAAM,+BAA+B;AAC7D,OAAO,KAAKC,QAAQ,MAAM,2BAA2B;AACrD,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,iCAAiC;AAClF,OAAO,KAAKC,GAAG,MAAM,cAAc;AACnC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AACnD,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAC3C,OAAO,KAAKC,MAAM,MAAM,aAAa;AACrC,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,QAAQ,QAAQ,eAAe;AACxC,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,OAAO,KAAKC,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;;AAIA,OAAO,MAAMC,IAAI,gBAAGhB,MAAM,CAACiB,GAAG,CAAC,aAAS;EACtC,MAAMC,QAAQ,GAAG,OAAOJ,QAAQ,CAACA,QAAQ;EACzC,MAAMK,OAAO,GAAG,OAAON,cAAc;EAErC,MAAMO,SAAS,GAAG,IAAIC,GAAG,EAAwB;EACjD,MAAMC,QAAQ,GAAG,IAAID,GAAG,EAUrB;EACH,MAAME,UAAU,GAAG,IAAIF,GAAG,EAGtB;EACJ,MAAMG,eAAe,GAAG,IAAIH,GAAG,EAAwB;EACvD,MAAMI,OAAO,GAAG,OAAOrB,KAAK,CAACY,IAAI,CAAC;IAChCU,MAAM,EAAE1B,MAAM,CAAC2B,UAAU,CAAC,WAAUC,YAAoB;MACtD,MAAMC,MAAM,GAAGP,QAAQ,CAACQ,GAAG,CAACF,YAAY,CAAC;MACzC,IAAI,CAACC,MAAM,EAAE;QACX,OAAO,OAAO7B,MAAM,CAAC+B,UAAU,CAAC,YAAYH,YAAY,iBAAiB,CAAC;MAC5E;MACA,OAAO,OAAOC,MAAM,CAACG,MAAM;IAC7B,CAAC,CAAC;IACFC,cAAc,EAAE;GACjB,CAAC;EACF,MAAMC,WAAW,GAAG,OAAOC,WAAW,CAACH,MAAM;EAC7C,MAAMI,cAAc,GAAG,OAAOC,cAAc,CAACL,MAAM;EAEnD,MAAMM,YAAY,GAAGtC,MAAM,CAAC2B,UAAU,CAAC,WAAUY,OAMhD;IACC,MAAMC,UAAU,GAAG3C,OAAO,CAACiC,GAAG,CAACS,OAAO,CAACE,QAAQ,CAACC,WAAW,EAAEnC,aAAa,CAACoC,UAAU,CAAC,CACpFJ,OAAO,CAACK,WAAuB,CAChC;IACD,MAAMC,QAAQ,GAAGlC,QAAQ,CAACK,IAAI,CAACuB,OAAO,CAACK,WAAW,CAAC;IACnD,MAAME,OAAO,GAAG,IAAIpC,aAAa,CAAC;MAChCqC,UAAU,EAAEnC,UAAU,CAACI,IAAI,CAACuB,OAAO,CAACQ,UAAU,CAAC;MAC/CF,QAAQ;MACRG,OAAO,EAAE9B,QAAQ,CAAC+B,UAAU,CAACJ,QAAQ,EAAEL,UAAU;KAClD,CAAC;IACF,OAAO,OAAOrB,OAAO,CAAC+B,sBAAsB,CAAC;MAAEJ,OAAO;MAAEK,GAAG,EAAEZ,OAAO,CAACY,GAAG;MAAEC,EAAE,EAAEb,OAAO,CAACa;IAAE,CAAE,CAAC;EAC7F,CAAC,CAAC;EAEF,MAAMC,iBAAiB,GAAGrD,MAAM,CAAC2B,UAAU,CAAC,WAAU2B,SAA8B;IAClF,MAAMC,OAAO,GAAG,OAAOpC,OAAO,CAACqC,oBAAoB,CAAC,CAACF,SAAS,CAAC,CAAC;IAChE,OAAO1D,GAAG,CAAC6D,IAAI,CAACF,OAAO,CAAC,CAACG,IAAI,CAC3BxD,MAAM,CAACyD,MAAM,CAAEC,KAAK,IAAKA,KAAK,CAACC,IAAI,KAAK,UAAU,CAAC,EACnD3D,MAAM,CAAC4D,GAAG,CAAEF,KAAK,IACfA,KAAsG,CACvG,CACF;EACH,CAAC,CAAC;EAEF,MAAMG,YAAY,GAAG/D,MAAM,CAAC2B,UAAU,CAAC,WAAUY,OAMhD;IACC,MAAMe,SAAS,GAAG,OAAOhB,YAAY,CAACC,OAAO,CAAC;IAC9C,IAAIrC,MAAM,CAAC8D,MAAM,CAACV,SAAS,CAAC,EAAE;MAC5B,OAAOpD,MAAM,CAAC+D,IAAI,EAAE;IACtB;IACA,OAAO,OAAOZ,iBAAiB,CAACC,SAAS,CAACY,KAAK,CAAC;EAClD,CAAC,CAAC;EAEF,MAAMC,oBAAoB,GAAGnE,MAAM,CAAC2B,UAAU,CAC5C,WAAUY,OAKT;IACC,MAAMe,SAAS,GAAG,OAAOhB,YAAY,CAAC;MACpCG,QAAQ,EAAEF,OAAO,CAACE,QAAQ;MAC1BM,UAAU,EAAE,YAAYR,OAAO,CAACE,QAAQ,CAAC2B,IAAI,EAAE;MAC/CxB,WAAW,EAAEL,OAAO,CAACK,WAAW;MAChCO,GAAG,EAAE,UAAU;MACfC,EAAE,EAAEiB,kBAAkB,CAAC9B,OAAO,CAAC+B,QAAQ,CAACF,IAAI,EAAE7B,OAAO,CAACgC,OAAO;KAC9D,CAAC;IACF,IAAIrE,MAAM,CAAC8D,MAAM,CAACV,SAAS,CAAC,EAAE;IAC9B,OAAOpC,QAAQ,CAACsD,KAAK,CAAClB,SAAS,CAACY,KAAK,CAAC;EACxC,CAAC,EACDlE,MAAM,CAACyE,KAAK,CAAC;IACXC,KAAK,EAAE,CAAC;IACRC,QAAQ,EAAEtE,QAAQ,CAACuE,WAAW,CAAC,GAAG;GACnC,CAAC,EACF5E,MAAM,CAAC6E,KAAK,CACb;EAED,MAAMC,UAAU,GAAG9E,MAAM,CAAC2B,UAAU,CAAC,WAAUY,OAG9C;IACC,MAAMC,UAAU,GAAG3C,OAAO,CAACiC,GAAG,CAACS,OAAO,CAACE,QAAQ,CAACC,WAAW,EAAEnC,aAAa,CAACoC,UAAU,CAAC,CACpFJ,OAAO,CAACK,WAAuB,CAChC;IACD,MAAMC,QAAQ,GAAGlC,QAAQ,CAACK,IAAI,CAACuB,OAAO,CAACK,WAAW,CAAC;IACnD,MAAMI,OAAO,GAAG9B,QAAQ,CAAC+B,UAAU,CAACJ,QAAQ,EAAEL,UAAU,CAAC;IACzD,MAAMuC,YAAY,GAAG,IAAIrE,aAAa,CAAC;MACrCqC,UAAU,EAAEZ,WAAW,CAAC6C,IAAI;MAC5BnC,QAAQ;MACRG;KACD,CAAC;IACF,OAAO7B,OAAO,CAAC8D,YAAY,CAACF,YAAY,CAAC;EAC3C,CAAC,CAAC;EAEF,OAAOrF,cAAc,CAACwF,EAAE,CAAC;IACvBC,QAAQA,CAAC1C,QAAQ,EAAE2C,OAAO;MACxB;MACA,MAAMC,MAAM,GAAG,IAAI;MACnB,OAAOrF,MAAM,CAACsF,OAAO,CAAC,MAAK;QACzB,IAAIhE,QAAQ,CAACiE,GAAG,CAAC9C,QAAQ,CAAC2B,IAAI,CAAC,EAAE;UAC/B,OAAOpE,MAAM,CAAC+B,UAAU,CAAC,YAAYU,QAAQ,CAAC2B,IAAI,qBAAqB,CAAC;QAC1E;QACA,MAAMvC,MAAM,GAAG2D,kBAAkB,CAAC/C,QAAQ,CAAC;QAC3CrB,SAAS,CAACqE,GAAG,CAAChD,QAAQ,CAAC2B,IAAI,EAAE3B,QAAQ,CAAC;QACtCnB,QAAQ,CAACmE,GAAG,CAAChD,QAAQ,CAAC2B,IAAI,EAAEvC,MAAa,CAAC;QAC1C,OAAOX,QAAQ,CAACwE,cAAc,CAC5B7D,MAAM,EACN7B,MAAM,CAACiB,GAAG,CAAC,aAAS;UAClB,MAAM6B,OAAO,GAAG,OAAOrC,MAAM,CAACkF,cAAc;UAC5C,MAAM/C,WAAW,GAAGE,OAAO,CAACD,QAAQ;UACpC,OAAO;YACL+C,GAAG,EAAGC,OAA4B,IAAI;cACpC,MAAMC,QAAQ,GAAGnG,gBAAgB,CAACuF,EAAE,CAAC;gBACnCzC,QAAQ;gBACRG,WAAW;gBACXmD,SAAS,EAAE;eACZ,CAAC;cACF,OAAOX,OAAO,CAACS,OAAO,CAACG,OAAO,EAAEpD,WAAW,CAAC,CAACc,IAAI,CAC/C1D,MAAM,CAACiG,MAAM,CAAC,MAAK;gBACjB,IAAI,CAACH,QAAQ,CAACC,SAAS,EAAE;kBACvB,OAAO/F,MAAM,CAACkG,IAAI;gBACpB;gBACA,OAAOb,MAAM,CAACc,cAAc,CAACC,eAAe,CAAC,CAAC1C,IAAI,CAChD1D,MAAM,CAACqG,OAAO,CAAEC,WAAW,IAAI;kBAC7B,IAAIpG,MAAM,CAAC8D,MAAM,CAACsC,WAAW,CAAC,EAAE;oBAC9B,OAAOtG,MAAM,CAACkG,IAAI;kBACpB;kBACAJ,QAAQ,CAACC,SAAS,GAAG,KAAK;kBAC1B,OAAO/F,MAAM,CAACuG,QAAQ,CACpBvG,MAAM,CAACwG,MAAM,CAAC1B,UAAU,CAAC;oBAAErC,QAAQ;oBAAEG;kBAAW,CAAE,CAAC,CAAC,EACpD5C,MAAM,CAACyG,SAAS,CACjB;gBACH,CAAC,CAAC,EACFzG,MAAM,CAAC6E,KAAK,CACb;cACH,CAAC,CAAC,EACF7E,MAAM,CAAC0G,MAAM,EACbjH,QAAQ,CAACkH,UAAU,EACnB3G,MAAM,CAAC4G,cAAc,CAACjH,gBAAgB,EAAEmG,QAAQ,CAAC,CAC3C;YACV,CAAC;YACDxB,QAAQ,EAAEtE,MAAM,CAAC2B,UAAU,CAAC,WAAUkE,OAA4B;cAChE,MAAMgB,UAAU,GAAG,GAAGjE,WAAW,IAAIiD,OAAO,CAACG,OAAO,CAAC5B,IAAI,EAAE;cAC3D,IAAI0C,KAAK,GAAGvF,UAAU,CAACO,GAAG,CAAC+E,UAAU,CAAC;cACtC,OAAO,CAACC,KAAK,EAAE;gBACb,MAAMC,KAAK,GAAG/G,MAAM,CAACgH,eAAe,EAAE;gBACtCxF,eAAe,CAACiE,GAAG,CAACoB,UAAU,EAAEE,KAAK,CAAC;gBACtC,OAAOA,KAAK,CAACE,KAAK;gBAClBH,KAAK,GAAGvF,UAAU,CAACO,GAAG,CAAC+E,UAAU,CAAC;cACpC;cACA,MAAMK,UAAU,GAAG,IAAI7F,GAAG,CAACyF,KAAK,CAACK,OAAO,CAACC,SAAS,CAAC;cACnDF,UAAU,CAACzB,GAAG,CAAClG,QAAQ,CAAC8H,cAAc,CAACC,GAAG,EAAEzB,OAAO,CAACG,OAAO,CAACzB,OAAO,CAAC;cACpE2C,UAAU,CAACzB,GAAG,CACZ9F,gBAAgB,CAAC2H,GAAG,EACpB3H,gBAAgB,CAACuF,EAAE,CAAC;gBAClBzC,QAAQ;gBACRG,WAAW;gBACXmD,SAAS,EAAE;eACZ,CAAC,CACH;cACD,OAAO,OAAOe,KAAK,CAACxC,QAAQ,CAACiD,cAAc,CAAC7D,IAAI,CAC9CjE,QAAQ,CAACkH,UAAU,EACnB3G,MAAM,CAACwH,OAAO,CAAC3H,OAAO,CAAC4H,UAAU,CAACP,UAAU,CAAC,CAAC,EAC9ClH,MAAM,CAAC0H,QAAQ,CAAC1H,MAAM,CAAC2H,IAAI,CAAC,MAAK;gBAC/BpG,UAAU,CAACqG,MAAM,CAACf,UAAU,CAAC;cAC/B,CAAC,CAAC,CAAC,CACJ;YACH,CAAC,EAAExH,GAAG,CAACwI,IAAI;WACZ;QACH,CAAC,CAAC,CACoB;MAC1B,CAAC,CAAC;IACJ,CAAC;IAEDzC,OAAO,EAAEA,CAAC;MAAE0C,OAAO;MAAElF,WAAW;MAAEoD,OAAO;MAAEvD;IAAQ,CAAE,KACnDrC,KAAK,CAAC0B,GAAG,CAACL,OAAO,EAAEgB,QAAQ,CAAC2B,IAAI,CAAC,CAACV,IAAI,CACpC1D,MAAM,CAACqG,OAAO,CAAErF,IAAI,IAAKA,IAAI,CAAC4B,WAAW,CAAC,CAACgD,GAAG,CAACI,OAAO,EAAE;MAAE8B;IAAO,CAAE,CAAC,CAAC,EACrE9H,MAAM,CAAC6E,KAAK,EACZ7E,MAAM,CAAC0G,MAAM,CACd;IAEHD,SAAS,EAAEzG,MAAM,CAAC2B,UAAU,CAC1B,WAAwCc,QAAQ,EAAEG,WAAW;MAC3D,MAAMU,SAAS,GAAG,OAAOhB,YAAY,CAAC;QACpCG,QAAQ;QACRM,UAAU,EAAE,YAAYN,QAAQ,CAAC2B,IAAI,EAAE;QACvCxB,WAAW;QACXO,GAAG,EAAE,KAAK;QACVC,EAAE,EAAE;OACL,CAAC;MACF,IAAIlD,MAAM,CAAC8D,MAAM,CAACV,SAAS,CAAC,EAAE;QAC5B;MACF;MACA,MAAMM,KAAK,GAAG,OAAOP,iBAAiB,CAACC,SAAS,CAACY,KAAK,CAAC;MACvD,MAAM6D,iBAAiB,GAAGnE,KAAK,CAACF,IAAI,CAClCxD,MAAM,CAACyD,MAAM,CAAEC,KAAK,IAAKA,KAAK,CAACoE,IAAI,CAACnE,IAAI,KAAK,SAAS,IAAID,KAAK,CAACoE,IAAI,CAAC9D,KAAK,CAACL,IAAI,KAAK,WAAW,CAAC,CACjG;MACD,IAAI3D,MAAM,CAAC+H,MAAM,CAACF,iBAAiB,CAAC,EAAE;QACpC;MACF;MAEA,OAAO,IAAI,CAACG,YAAY,CAAC;QACvBtG,YAAY,EAAEa,QAAQ,CAAC2B,IAAI;QAC3BxB,WAAW;QACXuF,QAAQ,EAAE/B,eAAe;QACzB4B,IAAI,EAAE;UAAEnE,IAAI,EAAE,SAAS;UAAEK,KAAK,EAAE,KAAK;QAAC;OACvC,CAAC;IACJ,CAAC,EACDlE,MAAM,CAACyE,KAAK,CAAC;MACX2D,KAAK,EAAGC,CAAC,IAAKA,CAAC,CAACxE,IAAI,KAAK,kBAAkB;MAC3Ca,KAAK,EAAE,CAAC;MACRC,QAAQ,EAAEtE,QAAQ,CAACuE,WAAW,CAAC,GAAG;KACnC,CAAC,EACF5E,MAAM,CAAC6E,KAAK,CACb;IAEDyD,MAAM,EAAEtI,MAAM,CAAC2B,UAAU,CACvB,WAAUC,YAAoB,EAAEgB,WAAmB;MACjD,MAAMH,QAAQ,GAAGrB,SAAS,CAACU,GAAG,CAACF,YAAY,CAAC;MAC5C,IAAI,CAACa,QAAQ,EAAE;QACb,OAAO,OAAOzC,MAAM,CAAC+B,UAAU,CAAC,0BAA0BH,YAAY,iBAAiB,CAAC;MAC1F;MACA,MAAM2G,UAAU,GAAG,OAAOxE,YAAY,CAAC;QACrCtB,QAAQ;QACRM,UAAU,EAAE,YAAYnB,YAAY,EAAE;QACtCgB,WAAW;QACXO,GAAG,EAAE,KAAK;QACVC,EAAE,EAAE;OACL,CAAC;MACF,MAAMoF,cAAc,GAAGtI,MAAM,CAACyD,MAAM,CAClC4E,UAAU,EACT3E,KAAK,IAAKA,KAAK,CAACoE,IAAI,CAACnE,IAAI,KAAK,SAAS,IAAID,KAAK,CAACoE,IAAI,CAAC9D,KAAK,CAACL,IAAI,KAAK,WAAW,CAClF;MACD,IAAI3D,MAAM,CAAC8D,MAAM,CAACwE,cAAc,CAAC,EAAE;MACnC,OAAOtH,QAAQ,CAACsD,KAAK,CAACzD,SAAS,CAACA,SAAS,CAACyH,cAAc,CAACtE,KAAK,CAACZ,SAAS,CAAC,CAAC;IAC5E,CAAC,EACDtD,MAAM,CAACyE,KAAK,CAAC;MACX2D,KAAK,EAAGC,CAAC,IAAKA,CAAC,CAACxE,IAAI,KAAK,kBAAkB;MAC3Ca,KAAK,EAAE,CAAC;MACRC,QAAQ,EAAEtE,QAAQ,CAACuE,WAAW,CAAC,GAAG;KACnC,CAAC,EACF5E,MAAM,CAAC6E,KAAK,CACb;IAED4D,eAAe,EAAEzI,MAAM,CAAC2B,UAAU,CAAC,WAAU;MAAE2C,QAAQ;MAAEC;IAAO,CAAE;MAChE,MAAM4C,OAAO,GAAG,OAAOnH,MAAM,CAACmH,OAAO,EAAoB;MACzD,MAAMrB,QAAQ,GAAGjG,OAAO,CAACiC,GAAG,CAACqF,OAAO,EAAExH,gBAAgB,CAAC;MACvD,MAAMkH,UAAU,GAAG,GAAGf,QAAQ,CAAClD,WAAW,IAAI0B,QAAQ,CAACF,IAAI,EAAE;MAC7D7C,UAAU,CAACkE,GAAG,CAACoB,UAAU,EAAE;QAAEvC,QAAQ;QAAE6C;MAAO,CAAE,CAAC;MACjD,MAAMJ,KAAK,GAAGvF,eAAe,CAACM,GAAG,CAAC+E,UAAU,CAAC;MAC7C,IAAIE,KAAK,EAAE;QACT,OAAOA,KAAK,CAAC2B,OAAO;QACpBlH,eAAe,CAACoG,MAAM,CAACf,UAAU,CAAC;MACpC;MACA,MAAM7E,MAAM,GAAG,CAAC,OAAO5B,KAAK,CAAC0B,GAAG,CAACL,OAAO,EAAEqE,QAAQ,CAACrD,QAAQ,CAAC2B,IAAI,CAAC,EAAE0B,QAAQ,CAAClD,WAAW,CAAC;MACxF,OAAO,IAAI,EAAE;QACX,MAAM+F,MAAM,GAAG,OAAO3I,MAAM,CAAC6E,KAAK,CAAC7C,MAAM,CAACsC,QAAQ,CAAC;UAAEF,IAAI,EAAEE,QAAQ,CAACF,IAAI;UAAEG;QAAO,CAAE,CAAC,CAAC;QACrF;QACA;QACA,IAAIoE,MAAM,CAAC9E,IAAI,KAAK,WAAW,IAAItC,UAAU,CAACgE,GAAG,CAACsB,UAAU,CAAC,EAAE;UAC7D,OAAO1C,oBAAoB,CAAC;YAC1B1B,QAAQ,EAAEqD,QAAQ,CAACrD,QAAQ;YAC3BG,WAAW,EAAEkD,QAAQ,CAAClD,WAAW;YACjC0B,QAAQ;YACRC;WACD,CAAC;UACF;QACF;QACAhD,UAAU,CAACqG,MAAM,CAACf,UAAU,CAAC;QAC7B,OAAO8B,MAAM;MACf;IACF,CAAC,EAAE3I,MAAM,CAAC0G,MAAM,CAAC;IAEjBP,cAAc,EAAGgC,QAAQ,IACvBxI,gBAAgB,CAAC+D,IAAI,CACnB1D,MAAM,CAACqG,OAAO,CAAEP,QAAQ,IACtB/B,YAAY,CAAC;MACXtB,QAAQ,EAAEqD,QAAQ,CAACrD,QAAQ;MAC3BM,UAAU,EAAEV,cAAc,CAAC2C,IAAI;MAC/BpC,WAAW,EAAEkD,QAAQ,CAAClD,WAAW;MACjCO,GAAG,EAAE,KAAK;MACVC,EAAE,EAAE+E,QAAQ,CAAC/D;KACd,CAAC,CACH,EACDpE,MAAM,CAAC8D,GAAG,CAAC5D,MAAM,CAAC4D,GAAG,CAAEF,KAAK,IAAKA,KAAK,CAACoE,IAAI,CAAC,CAAC,EAC7ChI,MAAM,CAACyE,KAAK,CAAC;MACX2D,KAAK,EAAGC,CAAC,IAAKA,CAAC,CAACxE,IAAI,KAAK,kBAAkB;MAC3Ca,KAAK,EAAE,CAAC;MACRC,QAAQ,EAAEtE,QAAQ,CAACuE,WAAW,CAAC,GAAG;KACnC,CAAC,EACF5E,MAAM,CAAC6E,KAAK,CACb;IAEHqD,YAAYA,CAAC;MAAEC,QAAQ;MAAEvF,WAAW;MAAEoF,IAAI;MAAEpG;IAAY,CAAE;MACxD,MAAMI,MAAM,GAAGI,cAAc,CAACQ,WAAW,CAAC;MAC1C,OAAO5C,MAAM,CAAC6E,KAAK,CAAC7C,MAAM,CAACyD,GAAG,CAAC;QAC7B7D,YAAY;QACZwC,IAAI,EAAE+D,QAAQ,CAAC/D,IAAI;QACnB4D;OACD,CAAC,CAAC;IACL,CAAC;IAEDY,aAAaA,CAACrG,OAAO;MACnB,MAAMP,MAAM,GAAGE,WAAW,CAACK,OAAO,CAACK,WAAW,CAAC;MAC/C,OAAO9C,QAAQ,CAAC+I,GAAG,CAACnF,IAAI,CACtB1D,MAAM,CAACqG,OAAO,CAAEwC,GAAG,IACjB7G,MAAM,CAAC4D,GAAG,CAAC;QACTxB,IAAI,EAAE7B,OAAO,CAACuG,KAAK,CAAC1E,IAAI;QACxBxC,YAAY,EAAEW,OAAO,CAACE,QAAQ,CAAC2B,IAAI;QACnC2E,MAAM,EAAEjJ,QAAQ,CAACkJ,WAAW,CAACH,GAAG,EAAEtG,OAAO,CAACuG,KAAK,CAACG,QAAQ;OACzD,EAAE;QAAEnB,OAAO,EAAE;MAAI,CAAE,CAAC,CACtB,EACD9H,MAAM,CAAC6E,KAAK,CACb;IACH;GACD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAMqE,WAAW,gBAAG7I,QAAQ,CAACuE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAClB,IAAI,cACrDrD,QAAQ,CAAC8I,KAAK,cAAC9I,QAAQ,CAAC+I,MAAM,CAAC,UAAU,CAAC,CAAC,CAC5C;AAED,MAAMC,aAAa,GAAaC,MAA8B,IAC5DA,MAAM,CAAC5F,IAAI,CACT1D,MAAM,CAACuJ,OAAO,EACdvJ,MAAM,CAACyE,KAAK,CAACyE,WAAW,CAAC,EACzBlJ,MAAM,CAAC6E,KAAK,CACb;AAEH,MAAM2E,WAAW,gBAAGnK,GAAG,CAAC2B,IAAI,CAAC,UAAU,EAAE;EACvCgF,OAAO,EAAE;IACP5B,IAAI,EAAE9D,MAAM,CAACmJ,MAAM;IACnBlF,OAAO,EAAEjE,MAAM,CAACoJ;GACjB;EACDC,UAAU,EAAEA,CAAC;IAAEpF,OAAO;IAAEH;EAAI,CAAE,KAAKC,kBAAkB,CAACD,IAAI,EAAEG,OAAO,CAAC;EACpEqF,OAAO,eAAEnK,QAAQ,CAACoK,MAAM,CAAC;IACvBD,OAAO,EAAEtJ,MAAM,CAACwJ,OAAO;IACvBC,KAAK,EAAEzJ,MAAM,CAACwJ;GACf;CACF,CAAC;AAEF,MAAMtE,kBAAkB,GAAI/C,QAAsB,IAChDhC,MAAM,CAACO,IAAI,CAAC,YAAYyB,QAAQ,CAAC2B,IAAI,EAAE,EAAE,CACvC/E,GAAG,CAAC2B,IAAI,CAAC,KAAK,EAAE;EACdgF,OAAO,EAAEvD,QAAQ,CAACuH,aAAa,CAACC,MAAM;EACtCN,UAAU,EAAEA,CAAA,KAAM,EAAE;EACpBC,OAAO,EAAEnK,QAAQ,CAACoK,MAAM,CAAC;IACvBD,OAAO,EAAEnH,QAAQ,CAACyH,aAAa;IAC/BH,KAAK,EAAEtH,QAAQ,CAAC0H;GACjB;CACF,CAAC,EACFX,WAAW,CACZ,CAAC,CACCY,eAAe,CAAC3H,QAAQ,CAACC,WAAW,CAAC,CACrC2H,YAAY,CAAC9J,aAAa,CAAC+J,SAAS,EAAE,IAAI,CAAC,CAC3CD,YAAY,CAAC9J,aAAa,CAACgK,eAAe,EAAE,IAAI,CAAC;AAEtD,MAAMlG,kBAAkB,GAAGA,CAACC,QAAgB,EAAEC,OAAe,KAAK,GAAGD,QAAQ,IAAIC,OAAO,EAAE;AAE1F,MAAMiG,WAAW,gBAAGlK,MAAM,CAACmK,aAAa,cAACnK,MAAM,CAACoK,IAAI,CAAC;EACnDd,OAAO,EAAEtJ,MAAM,CAACwJ,OAAO;EACvBa,OAAO,EAAErK,MAAM,CAACwJ,OAAO;EACvBc,MAAM,EAAEtK,MAAM,CAACuK;CAChB,CAAC,CAAC;AAEH,MAAMxI,cAAc,gBAAG5B,MAAM,CAACO,IAAI,CAAC,4BAA4B,EAAE,CAC/D3B,GAAG,CAAC2B,IAAI,CAAC,KAAK,EAAE;EACdgF,OAAO,EAAE;IACPpE,YAAY,EAAEtB,MAAM,CAACmJ,MAAM;IAC3BrF,IAAI,EAAE9D,MAAM,CAACmJ,MAAM;IACnBzB,IAAI,EAAEwC;GACP;EACDb,UAAU,EAAEA,CAAC;IAAEvF;EAAI,CAAE,KAAKA,IAAI;EAC9BwF,OAAO,EAAEY;CACV,CAAC,EACFnL,GAAG,CAAC2B,IAAI,CAAC,QAAQ,EAAE;EACjBgF,OAAO,EAAE;IACPpE,YAAY,EAAEtB,MAAM,CAACmJ,MAAM;IAC3BrF,IAAI,EAAE9D,MAAM,CAACmJ;GACd;EACDE,UAAU,EAAEA,CAAC;IAAEvF;EAAI,CAAE,KAAKA;CAC3B,CAAC,CACH,CAAC,CACCiG,YAAY,CAAC9J,aAAa,CAAC+J,SAAS,EAAE,IAAI,CAAC,CAC3CD,YAAY,CAAC9J,aAAa,CAACgK,eAAe,EAAE,IAAI,CAAC;AAEpD,MAAMO,mBAAmB,gBAAGzI,cAAc,CAAC0I,OAAO,cAAC/K,MAAM,CAACiB,GAAG,CAAC,aAAS;EACrE,MAAMoE,MAAM,GAAG,OAAO3F,cAAc;EACpC,MAAMoD,OAAO,GAAG,OAAOrC,MAAM,CAACkF,cAAc;EAC5C,MAAM/C,WAAW,GAAGE,OAAO,CAACD,QAAQ;EACpC,MAAMb,MAAM,GAAG,CAAC,OAAOK,cAAc,CAACL,MAAM,EAAEY,WAAW,CAAC;EAC1D,OAAO;IACL6C,GAAG,EAAGI,OAAO,IACX7F,MAAM,CAACgL,EAAE,CACP3B,aAAa,CAACrH,MAAM,CAACsG,MAAM,CAACzC,OAAO,CAACG,OAAO,EAAE;MAAE8B,OAAO,EAAE;IAAI,CAAE,CAAC,CAAC,EAChEjC,OAAO,CAACG,OAAO,CAACgC,IAAI,CACrB;IACHM,MAAM,EAAGzC,OAAO,IAAKR,MAAM,CAACiD,MAAM,CAACzC,OAAO,CAACG,OAAO,CAACpE,YAAY,EAAEgB,WAAW;GAC7E;AACH,CAAC,CAAC,CAAC;AAEH,MAAMqI,YAAa,sBAAQ3K,MAAM,CAAC4K,KAAK,CAAe,2BAA2B,CAAC,CAAC;EACjF9G,IAAI,EAAE9D,MAAM,CAACmJ,MAAM;EACnB7H,YAAY,EAAEtB,MAAM,CAACmJ,MAAM;EAC3BV,MAAM,EAAEzI,MAAM,CAAC6K;CAChB,CAAC;EACA,CAAChL,UAAU,CAACiL,MAAM,IAAC;IACjB,OAAO,IAAI,CAAChH,IAAI;EAClB;EACA,CAAC5D,SAAS,CAAC4K,MAAM,IAAC;IAChB,OAAO,IAAI,CAACrC,MAAM;EACpB;;AAGF,MAAM5G,WAAW,gBAAG1B,MAAM,CAACO,IAAI,CAAC,yBAAyB,EAAE,cACzD3B,GAAG,CAAC2B,IAAI,CAAC,KAAK,EAAE;EAAEgF,OAAO,EAAEiF;AAAY,CAAE,CAAC,CACvCI,QAAQ,CAAC9K,aAAa,CAAC+J,SAAS,EAAE,IAAI,CAAC,CACvCe,QAAQ,CAAC9K,aAAa,CAACgK,eAAe,EAAE,IAAI,CAAC,CACjD,CAAC;AAEF,MAAMe,gBAAgB,gBAAGnJ,WAAW,CAAC4I,OAAO,cAAC/K,MAAM,CAACiB,GAAG,CAAC,aAAS;EAC/D,MAAMoE,MAAM,GAAG,OAAO3F,cAAc;EACpC,MAAMoD,OAAO,GAAG,OAAOrC,MAAM,CAACkF,cAAc;EAC5C,MAAM/C,WAAW,GAAGE,OAAO,CAACD,QAAQ;EACpC,OAAO;IACL+C,GAAGA,CAACC,OAAO;MACT,MAAMsC,QAAQ,GAAG3I,YAAY,CAACwB,IAAI,CAAC;QAAEoD,IAAI,EAAEyB,OAAO,CAACG,OAAO,CAAC5B,IAAI;QAAE6E,QAAQ,EAAElJ,QAAQ,CAACwL;MAAI,CAAE,CAAC,CAACpD,QAAQ;MACpG,OAAOkB,aAAa,CAAChE,MAAM,CAAC6C,YAAY,CAAC;QACvCtG,YAAY,EAAEiE,OAAO,CAACG,OAAO,CAACpE,YAAY;QAC1CgB,WAAW;QACXuF,QAAQ;QACRH,IAAI,EAAE;UAAEnE,IAAI,EAAE,SAAS;UAAEK,KAAK,EAAE,KAAK;QAAC;OACvC,CAAC,CAAC;IACL;GACD;AACH,CAAC,CAAC,CAAC;AAEH,MAAMkC,eAAe,gBAAG9G,eAAe,CAAC0B,IAAI,CAAC,0BAA0B,CAAC;AAExE;;;;AAIA,OAAO,MAAMwK,KAAK,gBAIdV,mBAAmB,CAACpH,IAAI,cAC1BzD,KAAK,CAACwL,KAAK,CAACH,gBAAgB,CAAC,eAC7BrL,KAAK,CAACyL,YAAY,cAACzL,KAAK,CAACyG,MAAM,CAAChH,cAAc,EAAEsB,IAAI,CAAC,CAAC,CACvD","ignoreList":[]}
@@ -13,6 +13,7 @@ import * as Mailbox from "effect/Mailbox";
13
13
  import * as Option from "effect/Option";
14
14
  import * as Predicate from "effect/Predicate";
15
15
  import { Scope } from "effect/Scope";
16
+ import { ShardGroup } from "./ClusterSchema.js";
16
17
  import { EntityAddress } from "./EntityAddress.js";
17
18
  import { EntityType } from "./EntityType.js";
18
19
  import * as Envelope from "./Envelope.js";
@@ -54,6 +55,9 @@ const Proto = {
54
55
  annotateRpcsContext(context) {
55
56
  return fromRpcGroup(this.type, this.protocol.annotateRpcsContext(context));
56
57
  },
58
+ getShardId(entityId) {
59
+ return Effect.map(shardingTag, sharding => sharding.getShardId(entityId, this.getShardGroup(entityId)));
60
+ },
57
61
  get client() {
58
62
  return shardingTag.pipe(Effect.flatMap(sharding => sharding.makeClient(this)));
59
63
  },
@@ -126,6 +130,7 @@ protocol) => {
126
130
  const self = Object.create(Proto);
127
131
  self.type = EntityType.make(type);
128
132
  self.protocol = protocol;
133
+ self.getShardGroup = Context.get(protocol.annotations, ShardGroup);
129
134
  return self;
130
135
  };
131
136
  /**
@@ -187,7 +192,7 @@ const shardingTag = /*#__PURE__*/Context.GenericTag("@effect/cluster/Sharding");
187
192
  */
188
193
  export const makeTestClient = /*#__PURE__*/Effect.fnUntraced(function* (entity, layer) {
189
194
  const config = yield* ShardingConfig;
190
- const makeShardId = entityId => ShardId.make(Math.abs(hashString(entityId) % config.numberOfShards) + 1);
195
+ const makeShardId = entityId => ShardId.make(entity.getShardGroup(entityId), Math.abs(hashString(entityId) % config.shardsPerGroup) + 1);
191
196
  const snowflakeGen = yield* Snowflake.makeGenerator;
192
197
  const runnerAddress = new RunnerAddress({
193
198
  host: "localhost",
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","names":["RpcClient","RpcGroup","RpcServer","Arr","Context","Data","Effect","Equal","Exit","Hash","Layer","Mailbox","Option","Predicate","Scope","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","client","shardingTag","pipe","flatMap","sharding","makeClient","toLayer","build","options","registerEntity","isEffect","succeed","effectDiscard","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","CurrentAddress","Tag","CurrentRunnerAddress","Request","Class","lastSentChunkValue","lastSentChunk","map","chunk","lastNonEmpty","nextSequence","isNone","sequence","GenericTag","makeTestClient","fnUntraced","entity","layer","config","makeShardId","entityId","Math","abs","numberOfShards","snowflakeGen","makeGenerator","runnerAddress","host","port","entityMap","of","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","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","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","of","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,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import * as Equal from "effect/Equal";
4
5
  import * as Hash from "effect/Hash";
5
6
  import * as Schema from "effect/Schema";
6
7
  import { EntityId } from "./EntityId.js";
@@ -27,11 +28,17 @@ export class EntityAddress extends /*#__PURE__*/Schema.Class(SymbolKey)({
27
28
  * @since 1.0.0
28
29
  */
29
30
  [TypeId] = TypeId;
31
+ /**
32
+ * @since 1.0.0
33
+ */
34
+ [Equal.symbol](that) {
35
+ return this.entityType === that.entityType && this.entityId === that.entityId && this.shardId[Equal.symbol](that.shardId);
36
+ }
30
37
  /**
31
38
  * @since 1.0.0
32
39
  */
33
40
  [Hash.symbol]() {
34
- return Hash.cached(this)(Hash.string(`${this.shardId}:${this.entityType}:${this.entityId}`));
41
+ return Hash.cached(this, Hash.string(`${this.entityType}:${this.entityId}:${this.shardId.toString()}`));
35
42
  }
36
43
  }
37
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EntityAddress.js","names":["Hash","Schema","EntityId","EntityType","ShardId","SymbolKey","TypeId","Symbol","for","EntityAddress","Class","shardId","entityType","entityId","symbol","cached","string","EntityAddressFromSelf","typeSchema"],"sources":["../../src/EntityAddress.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,QAAQ,QAAQ,eAAe;AACxC,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,OAAO,QAAQ,cAAc;AAEtC,MAAMC,SAAS,GAAG,+BAA+B;AAEjD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAACH,SAAS,CAAC;AAQ1D;;;;;;AAMA,OAAM,MAAOI,aAAc,sBAAQR,MAAM,CAACS,KAAK,CAAgBL,SAAS,CAAC,CAAC;EACxEM,OAAO,EAAEP,OAAO;EAChBQ,UAAU,EAAET,UAAU;EACtBU,QAAQ,EAAEX;CACX,CAAC;EACA;;;EAGS,CAACI,MAAM,IAAIA,MAAM;EAC1B;;;EAGA,CAACN,IAAI,CAACc,MAAM,IAAC;IACX,OAAOd,IAAI,CAACe,MAAM,CAAC,IAAI,CAAC,CAACf,IAAI,CAACgB,MAAM,CAAC,GAAG,IAAI,CAACL,OAAO,IAAI,IAAI,CAACC,UAAU,IAAI,IAAI,CAACC,QAAQ,EAAE,CAAC,CAAC;EAC9F;;AAGF;;;;;;AAMA,OAAO,MAAMI,qBAAqB,gBAAiChB,MAAM,CAACiB,UAAU,CAClFT,aAAa,CACd","ignoreList":[]}
1
+ {"version":3,"file":"EntityAddress.js","names":["Equal","Hash","Schema","EntityId","EntityType","ShardId","SymbolKey","TypeId","Symbol","for","EntityAddress","Class","shardId","entityType","entityId","symbol","that","cached","string","toString","EntityAddressFromSelf","typeSchema"],"sources":["../../src/EntityAddress.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,QAAQ,QAAQ,eAAe;AACxC,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,OAAO,QAAQ,cAAc;AAEtC,MAAMC,SAAS,GAAG,+BAA+B;AAEjD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAACH,SAAS,CAAC;AAQ1D;;;;;;AAMA,OAAM,MAAOI,aAAc,sBAAQR,MAAM,CAACS,KAAK,CAAgBL,SAAS,CAAC,CAAC;EACxEM,OAAO,EAAEP,OAAO;EAChBQ,UAAU,EAAET,UAAU;EACtBU,QAAQ,EAAEX;CACX,CAAC;EACA;;;EAGS,CAACI,MAAM,IAAIA,MAAM;EAE1B;;;EAGA,CAACP,KAAK,CAACe,MAAM,EAAEC,IAAmB;IAChC,OAAO,IAAI,CAACH,UAAU,KAAKG,IAAI,CAACH,UAAU,IAAI,IAAI,CAACC,QAAQ,KAAKE,IAAI,CAACF,QAAQ,IAC3E,IAAI,CAACF,OAAO,CAACZ,KAAK,CAACe,MAAM,CAAC,CAACC,IAAI,CAACJ,OAAO,CAAC;EAC5C;EAEA;;;EAGA,CAACX,IAAI,CAACc,MAAM,IAAC;IACX,OAAOd,IAAI,CAACgB,MAAM,CAAC,IAAI,EAAEhB,IAAI,CAACiB,MAAM,CAAC,GAAG,IAAI,CAACL,UAAU,IAAI,IAAI,CAACC,QAAQ,IAAI,IAAI,CAACF,OAAO,CAACO,QAAQ,EAAE,EAAE,CAAC,CAAC;EACzG;;AAGF;;;;;;AAMA,OAAO,MAAMC,qBAAqB,gBAAiClB,MAAM,CAACmB,UAAU,CAClFX,aAAa,CACd","ignoreList":[]}
@@ -14,6 +14,7 @@ import * as DeliverAt from "./DeliverAt.js";
14
14
  import * as Envelope from "./Envelope.js";
15
15
  import * as Message from "./Message.js";
16
16
  import * as Reply from "./Reply.js";
17
+ import { ShardId } from "./ShardId.js";
17
18
  import * as Snowflake from "./Snowflake.js";
18
19
  /**
19
20
  * @since 1.0.0
@@ -104,7 +105,7 @@ export const makeEncoded = /*#__PURE__*/Effect.fnUntraced(function* (encoded) {
104
105
  unprocessedMessages: shardIds => {
105
106
  const shards = Array.from(shardIds);
106
107
  if (shards.length === 0) return Effect.succeed([]);
107
- return Effect.flatMap(Effect.suspend(() => encoded.unprocessedMessages(shards, clock.unsafeCurrentTimeMillis())), decodeMessages);
108
+ return Effect.flatMap(Effect.suspend(() => encoded.unprocessedMessages(shards.map(id => id.toString()), clock.unsafeCurrentTimeMillis())), decodeMessages);
108
109
  },
109
110
  unprocessedMessagesById(messageIds) {
110
111
  const ids = Array.from(messageIds);
@@ -113,7 +114,7 @@ export const makeEncoded = /*#__PURE__*/Effect.fnUntraced(function* (encoded) {
113
114
  },
114
115
  resetAddress: encoded.resetAddress,
115
116
  clearAddress: encoded.clearAddress,
116
- resetShards: shardIds => encoded.resetShards(Array.from(shardIds))
117
+ resetShards: shardIds => encoded.resetShards(Array.from(shardIds, id => id.toString()))
117
118
  });
118
119
  const decodeMessages = envelopes => {
119
120
  const messages = [];
@@ -261,7 +262,7 @@ export class MemoryDriver extends /*#__PURE__*/Effect.Service()("@effect/cluster
261
262
  if (existing) {
262
263
  return SaveResultEncoded.Duplicate({
263
264
  originalId: Snowflake.Snowflake(existing.envelope.requestId),
264
- lastReceivedReply: existing.lastReceivedChunk
265
+ lastReceivedReply: existing.replies.length === 1 && existing.replies[0]._tag === "WithExit" ? Option.some(existing.replies[0]) : existing.lastReceivedChunk
265
266
  });
266
267
  }
267
268
  if (envelope._tag === "Request") {
@@ -314,7 +315,8 @@ export class MemoryDriver extends /*#__PURE__*/Effect.Service()("@effect/cluster
314
315
  let index = journal.indexOf(Iterable.unsafeHead(unprocessed));
315
316
  for (; index < journal.length; index++) {
316
317
  const envelope = journal[index];
317
- if (!shardIds.includes(envelope.address.shardId)) {
318
+ const shardId = ShardId.make(envelope.address.shardId);
319
+ if (!shardIds.includes(shardId.toString())) {
318
320
  continue;
319
321
  }
320
322
  if (envelope._tag === "Request") {