@effect/cluster 0.29.12 → 0.29.16

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 (54) hide show
  1. package/dist/cjs/MessageStorage.js +8 -5
  2. package/dist/cjs/MessageStorage.js.map +1 -1
  3. package/dist/cjs/RunnerServer.js +18 -11
  4. package/dist/cjs/RunnerServer.js.map +1 -1
  5. package/dist/cjs/Runners.js +21 -9
  6. package/dist/cjs/Runners.js.map +1 -1
  7. package/dist/cjs/ShardManager.js +2 -2
  8. package/dist/cjs/ShardManager.js.map +1 -1
  9. package/dist/cjs/Sharding.js +24 -3
  10. package/dist/cjs/Sharding.js.map +1 -1
  11. package/dist/cjs/SqlMessageStorage.js +7 -1
  12. package/dist/cjs/SqlMessageStorage.js.map +1 -1
  13. package/dist/cjs/SqlShardStorage.js +6 -6
  14. package/dist/cjs/SqlShardStorage.js.map +1 -1
  15. package/dist/cjs/internal/entityManager.js +13 -2
  16. package/dist/cjs/internal/entityManager.js.map +1 -1
  17. package/dist/dts/MessageStorage.d.ts +14 -2
  18. package/dist/dts/MessageStorage.d.ts.map +1 -1
  19. package/dist/dts/RunnerServer.d.ts +2 -2
  20. package/dist/dts/RunnerServer.d.ts.map +1 -1
  21. package/dist/dts/Runners.d.ts +4 -1
  22. package/dist/dts/Runners.d.ts.map +1 -1
  23. package/dist/dts/ShardManager.d.ts.map +1 -1
  24. package/dist/dts/ShardStorage.d.ts +3 -3
  25. package/dist/dts/Sharding.d.ts +3 -3
  26. package/dist/dts/Sharding.d.ts.map +1 -1
  27. package/dist/dts/SqlMessageStorage.d.ts +2 -1
  28. package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
  29. package/dist/esm/MessageStorage.js +8 -5
  30. package/dist/esm/MessageStorage.js.map +1 -1
  31. package/dist/esm/RunnerServer.js +18 -11
  32. package/dist/esm/RunnerServer.js.map +1 -1
  33. package/dist/esm/Runners.js +21 -9
  34. package/dist/esm/Runners.js.map +1 -1
  35. package/dist/esm/ShardManager.js +2 -2
  36. package/dist/esm/ShardManager.js.map +1 -1
  37. package/dist/esm/Sharding.js +25 -4
  38. package/dist/esm/Sharding.js.map +1 -1
  39. package/dist/esm/SqlMessageStorage.js +7 -1
  40. package/dist/esm/SqlMessageStorage.js.map +1 -1
  41. package/dist/esm/SqlShardStorage.js +6 -6
  42. package/dist/esm/SqlShardStorage.js.map +1 -1
  43. package/dist/esm/internal/entityManager.js +13 -2
  44. package/dist/esm/internal/entityManager.js.map +1 -1
  45. package/package.json +5 -5
  46. package/src/MessageStorage.ts +29 -7
  47. package/src/RunnerServer.ts +28 -17
  48. package/src/Runners.ts +38 -9
  49. package/src/ShardManager.ts +1 -4
  50. package/src/ShardStorage.ts +1 -1
  51. package/src/Sharding.ts +30 -10
  52. package/src/SqlMessageStorage.ts +12 -1
  53. package/src/SqlShardStorage.ts +6 -6
  54. package/src/internal/entityManager.ts +18 -3
@@ -120,10 +120,10 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
120
120
  });
121
121
  const sqlNow = sql.literal(sqlNowString);
122
122
  const lockExpiresAt = sql.onDialectOrElse({
123
- pg: () => sql`${sqlNow} - INTERVAL '120 seconds'`,
124
- mysql: () => sql`DATE_SUB(${sqlNow}, INTERVAL 120 SECOND)`,
125
- mssql: () => sql`DATEADD(SECOND, -120, ${sqlNow})`,
126
- orElse: () => sql`datetime(${sqlNow}, '-120 seconds')`
123
+ pg: () => sql`${sqlNow} - INTERVAL '15 seconds'`,
124
+ mysql: () => sql`DATE_SUB(${sqlNow}, INTERVAL 15 SECOND)`,
125
+ mssql: () => sql`DATEADD(SECOND, -15, ${sqlNow})`,
126
+ orElse: () => sql`datetime(${sqlNow}, '-15 seconds')`
127
127
  });
128
128
  const acquireLock = sql.onDialectOrElse({
129
129
  pg: () => (address, values) => sql`
@@ -143,7 +143,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
143
143
  MERGE ${locksTableSql} WITH (HOLDLOCK) AS target
144
144
  USING (SELECT * FROM (VALUES ${sql.csv(values)})) AS source (shard_id, address, acquired_at)
145
145
  ON target.shard_id = source.shard_id
146
- WHEN MATCHED AND (target.address = source.address OR DATEDIFF(SECOND, target.acquired_at, ${sqlNow}) > 120) THEN
146
+ WHEN MATCHED AND (target.address = source.address OR DATEDIFF(SECOND, target.acquired_at, ${sqlNow}) > 15) THEN
147
147
  UPDATE SET address = source.address, acquired_at = source.acquired_at
148
148
  WHEN NOT MATCHED THEN
149
149
  INSERT (shard_id, address, acquired_at)
@@ -160,7 +160,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
160
160
  SELECT 1 FROM ${locksTableSql}
161
161
  WHERE shard_id = source.shard_id
162
162
  AND address != ${address}
163
- AND (strftime('%s', ${sqlNow}) - strftime('%s', acquired_at)) <= 120
163
+ AND (strftime('%s', ${sqlNow}) - strftime('%s', acquired_at)) <= 15
164
164
  )
165
165
  ON CONFLICT(shard_id) DO UPDATE
166
166
  SET address = ${address}, acquired_at = ${sqlNow}
@@ -1 +1 @@
1
- {"version":3,"file":"SqlShardStorage.js","names":["SqlClient","Arr","Effect","Layer","PersistenceError","ShardStorage","make","fnUntraced","options","sql","withoutTransforms","prefix","table","name","runnersTable","runnersTableSql","onDialectOrElse","mssql","mysql","pg","orElse","shardsTable","shardsTableSql","locksTable","locksTableSql","sqlNowString","sqlNow","literal","lockExpiresAt","acquireLock","address","values","csv","_address","unprepared","forUpdate","sqlite","makeEncoded","getAssignments","pipe","refail","saveAssignments","assignments","remove","length","map","shardId","andThen","withTransaction","getRunners","runner","String","saveRunners","runners","insert","acquire","shardIds","currentLocks","in","row","shard_id","refresh","rows","Number","release","releaseAll","layer","effect","layerWith","scoped"],"sources":["../../src/SqlShardStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SqlShardStorage.js","names":["SqlClient","Arr","Effect","Layer","PersistenceError","ShardStorage","make","fnUntraced","options","sql","withoutTransforms","prefix","table","name","runnersTable","runnersTableSql","onDialectOrElse","mssql","mysql","pg","orElse","shardsTable","shardsTableSql","locksTable","locksTableSql","sqlNowString","sqlNow","literal","lockExpiresAt","acquireLock","address","values","csv","_address","unprepared","forUpdate","sqlite","makeEncoded","getAssignments","pipe","refail","saveAssignments","assignments","remove","length","map","shardId","andThen","withTransaction","getRunners","runner","String","saveRunners","runners","insert","acquire","shardIds","currentLocks","in","row","shard_id","refresh","rows","Number","release","releaseAll","layer","effect","layerWith","scoped"],"sources":["../../src/SqlShardStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -65,6 +65,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
65
65
  {
66
66
  const request = activeRequests.get(response.requestId);
67
67
  if (!request) return Effect.void;
68
+ request.sentReply = true;
68
69
  // For durable messages, ignore interrupts during shutdown.
69
70
  // They will be retried when the entity is restarted.
70
71
  if (storageEnabled && isShuttingDown && Context.get(request.rpc.annotations, Persisted) && Exit.isInterrupted(response.exit)) {
@@ -90,6 +91,9 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
90
91
  if (!request) return Effect.void;
91
92
  const sequence = request.sequence;
92
93
  request.sequence++;
94
+ if (!request.sentReply) {
95
+ request.sentReply = true;
96
+ }
93
97
  return Effect.orDie(retryRespond(4, Effect.suspend(() => {
94
98
  const reply = new Reply.Chunk({
95
99
  requestId: Snowflake.Snowflake(response.requestId),
@@ -205,6 +209,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
205
209
  entry = {
206
210
  rpc: entity.protocol.requests.get(message.envelope.tag),
207
211
  message,
212
+ sentReply: false,
208
213
  lastSentChunk: message.lastSentReply,
209
214
  sequence: Option.match(message.lastSentReply, {
210
215
  onNone: () => 0,
@@ -261,10 +266,16 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
261
266
  const decodeMessage = Schema.decode(makeMessageSchema(entity));
262
267
  return identity({
263
268
  interruptShard,
264
- isProcessingFor(message) {
269
+ isProcessingFor(message, options) {
265
270
  const state = activeServers.get(message.envelope.address.entityId);
266
271
  if (!state) return false;
267
- return state.activeRequests.has(message.envelope.requestId);
272
+ const request = state.activeRequests.get(message.envelope.requestId);
273
+ if (request === undefined) {
274
+ return false;
275
+ } else if (options?.excludeReplies && request.sentReply) {
276
+ return false;
277
+ }
278
+ return true;
268
279
  },
269
280
  sendLocal,
270
281
  send: message => decodeMessage(message).pipe(Effect.matchEffect({
@@ -1 +1 @@
1
- {"version":3,"file":"entityManager.js","names":["RequestId","RpcServer","Arr","Cause","Context","Duration","Effect","Exit","FiberRef","identity","HashMap","Metric","Option","Schedule","Schema","Scope","AlreadyProcessingMessage","EntityNotManagedByRunner","MailboxFull","MalformedMessage","ClusterMetrics","Persisted","CurrentAddress","CurrentRunnerAddress","Request","Envelope","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","activeServers","Map","entities","address","sharding","isShutdown","endLatch","makeLatch","addFinalizer","ignore","resetAddress","activeRequests","defectRequestIds","writeRef","from","isShuttingDown","handlers","protocol","toHandlersContext","pipe","provide","add","runnerAddress","locally","currentLogAnnotations","empty","server","makeNoSerialization","spanPrefix","type","entityId","concurrency","onFromServer","response","_tag","request","get","requestId","void","rpc","annotations","isInterrupted","exit","retryRespond","suspend","message","respond","WithExit","id","unsafeNext","flatMap","delete","size","state","lastActiveCheck","unsafeCurrentTimeMillis","orDie","sequence","reply","Chunk","values","lastSentChunk","some","effect","unsafeRebuild","Array","keys","logError","die","defect","andThen","tapErrorCause","retry","spaced","annotateLogs","module","runner","open","extend","sync","write","envelope","tag","payload","mailboxGauge","mailboxSize","tagged","clientId","current","await","value","withFiberRuntime","fiber","interruptible","timeoutOption","entityTerminationTimeout","set","reaper","maxIdleTime","toMillis","entityMaxIdleTime","Number","isFinite","register","servers","gauge","unsafeUpdate","BigInt","sleep","forever","forkIn","sendLocal","entry","fail","envelopeId","requests","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","interruptShard","shardId","loop","toInterrupt","Set","forEach","removeIgnore","discard","decodeMessage","decode","makeMessageSchema","isProcessingFor","has","send","matchEffect","onFailure","cause","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","activeEntityCount","push","TaggedStruct","transform","Struct","PartialEncodedRequestFromSelf","fields","Literal","payloadSchema","RequestFromSelf","encoded","makeRequest","encode","OptionFromSelf","Union","typeSchema","AckChunk","Interrupt","times","catchAll","delay"],"sources":["../../../src/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"entityManager.js","names":["RequestId","RpcServer","Arr","Cause","Context","Duration","Effect","Exit","FiberRef","identity","HashMap","Metric","Option","Schedule","Schema","Scope","AlreadyProcessingMessage","EntityNotManagedByRunner","MailboxFull","MalformedMessage","ClusterMetrics","Persisted","CurrentAddress","CurrentRunnerAddress","Request","Envelope","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","activeServers","Map","entities","address","sharding","isShutdown","endLatch","makeLatch","addFinalizer","ignore","resetAddress","activeRequests","defectRequestIds","writeRef","from","isShuttingDown","handlers","protocol","toHandlersContext","pipe","provide","add","runnerAddress","locally","currentLogAnnotations","empty","server","makeNoSerialization","spanPrefix","type","entityId","concurrency","onFromServer","response","_tag","request","get","requestId","void","sentReply","rpc","annotations","isInterrupted","exit","retryRespond","suspend","message","respond","WithExit","id","unsafeNext","flatMap","delete","size","state","lastActiveCheck","unsafeCurrentTimeMillis","orDie","sequence","reply","Chunk","values","lastSentChunk","some","effect","unsafeRebuild","Array","keys","logError","die","defect","andThen","tapErrorCause","retry","spaced","annotateLogs","module","runner","open","extend","sync","write","envelope","tag","payload","mailboxGauge","mailboxSize","tagged","clientId","current","await","value","withFiberRuntime","fiber","interruptible","timeoutOption","entityTerminationTimeout","set","reaper","maxIdleTime","toMillis","entityMaxIdleTime","Number","isFinite","register","servers","gauge","unsafeUpdate","BigInt","sleep","forever","forkIn","sendLocal","entry","fail","envelopeId","requests","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","interruptShard","shardId","loop","toInterrupt","Set","forEach","removeIgnore","discard","decodeMessage","decode","makeMessageSchema","isProcessingFor","undefined","excludeReplies","send","matchEffect","onFailure","cause","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","activeEntityCount","push","TaggedStruct","transform","Struct","PartialEncodedRequestFromSelf","fields","Literal","payloadSchema","RequestFromSelf","encoded","makeRequest","encode","OptionFromSelf","Union","typeSchema","AckChunk","Interrupt","times","catchAll","delay"],"sources":["../../../src/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/cluster",
3
- "version": "0.29.12",
3
+ "version": "0.29.16",
4
4
  "description": "Unified interfaces for common cluster-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -10,10 +10,10 @@
10
10
  },
11
11
  "sideEffects": [],
12
12
  "peerDependencies": {
13
- "@effect/platform": "^0.80.7",
14
- "@effect/rpc": "^0.55.10",
15
- "@effect/sql": "^0.33.7",
16
- "effect": "^3.14.7"
13
+ "@effect/platform": "^0.80.8",
14
+ "@effect/rpc": "^0.55.11",
15
+ "@effect/sql": "^0.33.8",
16
+ "effect": "^3.14.8"
17
17
  },
18
18
  "publishConfig": {
19
19
  "provenance": true
@@ -65,7 +65,9 @@ export class MessageStorage extends Context.Tag("@effect/cluster/MessageStorage"
65
65
  /**
66
66
  * For locally sent messages, register a handler to process the replies.
67
67
  */
68
- readonly registerReplyHandler: <R extends Rpc.Any>(message: Message.OutgoingRequest<R>) => Effect.Effect<void>
68
+ readonly registerReplyHandler: <R extends Rpc.Any>(
69
+ message: Message.OutgoingRequest<R> | Message.IncomingRequest<R>
70
+ ) => Effect.Effect<void>
69
71
 
70
72
  /**
71
73
  * Retrieves the unprocessed messages for the specified shards.
@@ -88,6 +90,13 @@ export class MessageStorage extends Context.Tag("@effect/cluster/MessageStorage"
88
90
  messageIds: Iterable<Snowflake.Snowflake>
89
91
  ) => Effect.Effect<Array<Message.Incoming<R>>, PersistenceError>
90
92
 
93
+ /**
94
+ * Reset the mailbox state for the provided shards.
95
+ */
96
+ readonly resetShards: (
97
+ shardIds: Iterable<ShardId>
98
+ ) => Effect.Effect<void, PersistenceError>
99
+
91
100
  /**
92
101
  * Reset the mailbox state for the provided address.
93
102
  */
@@ -237,6 +246,13 @@ export type Encoded = {
237
246
  readonly resetAddress: (
238
247
  address: EntityAddress
239
248
  ) => Effect.Effect<void, PersistenceError>
249
+
250
+ /**
251
+ * Reset the mailbox state for the provided shards.
252
+ */
253
+ readonly resetShards: (
254
+ shardIds: ReadonlyArray<number>
255
+ ) => Effect.Effect<void, PersistenceError>
240
256
  }
241
257
 
242
258
  /**
@@ -269,13 +285,16 @@ export const make = (
269
285
  Effect.sync(() => {
270
286
  const replyHandlers = new Map<
271
287
  Snowflake.Snowflake,
272
- (reply: Reply.Reply<any>) => Effect.Effect<void, PersistenceError>
288
+ (reply: Reply.ReplyWithContext<any>) => Effect.Effect<void, PersistenceError | MalformedMessage>
273
289
  >()
274
290
  return MessageStorage.of({
275
291
  ...storage,
276
292
  registerReplyHandler: (message) =>
277
293
  Effect.sync(() => {
278
- replyHandlers.set(message.envelope.requestId, message.respond)
294
+ replyHandlers.set(
295
+ message.envelope.requestId,
296
+ message._tag === "IncomingRequest" ? message.respond : (reply) => message.respond(reply.reply)
297
+ )
279
298
  }),
280
299
  saveReply(reply) {
281
300
  return Effect.flatMap(storage.saveReply(reply), () => {
@@ -285,7 +304,7 @@ export const make = (
285
304
  } else if (reply.reply._tag === "WithExit") {
286
305
  replyHandlers.delete(reply.reply.requestId)
287
306
  }
288
- return handler(reply.reply)
307
+ return handler(reply)
289
308
  })
290
309
  }
291
310
  })
@@ -371,7 +390,8 @@ export const makeEncoded: (encoded: Encoded) => Effect.Effect<
371
390
  decodeMessages
372
391
  )
373
392
  },
374
- resetAddress: (address) => encoded.resetAddress(address)
393
+ resetAddress: (address) => encoded.resetAddress(address),
394
+ resetShards: (shardIds) => encoded.resetShards(Array.from(shardIds))
375
395
  })
376
396
 
377
397
  const decodeMessages = (
@@ -489,7 +509,8 @@ export const noop: MessageStorage["Type"] = globalValue(
489
509
  repliesFor: () => Effect.succeed([]),
490
510
  unprocessedMessages: () => Effect.succeed([]),
491
511
  unprocessedMessagesById: () => Effect.succeed([]),
492
- resetAddress: () => Effect.void
512
+ resetAddress: () => Effect.void,
513
+ resetShards: () => Effect.void
493
514
  }))
494
515
  )
495
516
 
@@ -645,7 +666,8 @@ export class MemoryDriver extends Effect.Service<MemoryDriver>()("@effect/cluste
645
666
  }
646
667
  return unprocessedWith((envelope) => envelopeIds.has(envelope.requestId))
647
668
  }),
648
- resetAddress: () => Effect.void
669
+ resetAddress: () => Effect.void,
670
+ resetShards: () => Effect.void
649
671
  }
650
672
 
651
673
  const storage = yield* makeEncoded(encoded)
@@ -8,7 +8,7 @@ import * as Layer from "effect/Layer"
8
8
  import * as Mailbox from "effect/Mailbox"
9
9
  import * as Option from "effect/Option"
10
10
  import * as Message from "./Message.js"
11
- import type * as MessageStorage from "./MessageStorage.js"
11
+ import * as MessageStorage from "./MessageStorage.js"
12
12
  import * as Reply from "./Reply.js"
13
13
  import * as Runners from "./Runners.js"
14
14
  import * as Sharding from "./Sharding.js"
@@ -25,6 +25,7 @@ const constVoid = constant(Effect.void)
25
25
  */
26
26
  export const layerHandlers = Runners.Rpcs.toLayer(Effect.gen(function*() {
27
27
  const sharding = yield* Sharding.Sharding
28
+ const storage = yield* MessageStorage.MessageStorage
28
29
 
29
30
  return {
30
31
  Ping: () => Effect.void,
@@ -38,7 +39,7 @@ export const layerHandlers = Runners.Rpcs.toLayer(Effect.gen(function*() {
38
39
  })
39
40
  : new Message.IncomingEnvelope({ envelope })
40
41
  ),
41
- Effect: ({ request }) => {
42
+ Effect: ({ persisted, request }) => {
42
43
  let resume: (reply: Effect.Effect<Reply.ReplyEncoded<any>>) => void
43
44
  let replyEncoded: Reply.ReplyEncoded<any> | undefined
44
45
  const message = new Message.IncomingRequest({
@@ -56,7 +57,12 @@ export const layerHandlers = Runners.Rpcs.toLayer(Effect.gen(function*() {
56
57
  }
57
58
  })
58
59
  return Effect.zipRight(
59
- sharding.send(message),
60
+ persisted ?
61
+ Effect.zipRight(
62
+ storage.registerReplyHandler(message),
63
+ sharding.notify(message)
64
+ ) :
65
+ sharding.send(message),
60
66
  Effect.async<Reply.ReplyEncoded<any>>((resume_) => {
61
67
  if (replyEncoded) {
62
68
  resume_(Effect.succeed(replyEncoded))
@@ -66,25 +72,30 @@ export const layerHandlers = Runners.Rpcs.toLayer(Effect.gen(function*() {
66
72
  })
67
73
  )
68
74
  },
69
- Stream: ({ request }) =>
75
+ Stream: ({ persisted, request }) =>
70
76
  Effect.flatMap(
71
77
  Mailbox.make<Reply.ReplyEncoded<any>>(),
72
- (mailbox) =>
73
- Effect.as(
74
- sharding.send(
75
- new Message.IncomingRequest({
76
- envelope: request,
77
- lastSentReply: Option.none(),
78
- respond(reply) {
79
- return Effect.flatMap(Reply.serialize(reply), (reply) => {
80
- mailbox.unsafeOffer(reply)
81
- return Effect.void
82
- })
83
- }
78
+ (mailbox) => {
79
+ const message = new Message.IncomingRequest({
80
+ envelope: request,
81
+ lastSentReply: Option.none(),
82
+ respond(reply) {
83
+ return Effect.flatMap(Reply.serialize(reply), (reply) => {
84
+ mailbox.unsafeOffer(reply)
85
+ return Effect.void
84
86
  })
85
- ),
87
+ }
88
+ })
89
+ return Effect.as(
90
+ persisted ?
91
+ Effect.zipRight(
92
+ storage.registerReplyHandler(message),
93
+ sharding.notify(message)
94
+ ) :
95
+ sharding.send(message),
86
96
  mailbox
87
97
  )
98
+ }
88
99
  ),
89
100
  Envelope: ({ envelope }) => sharding.send(new Message.IncomingEnvelope({ envelope }))
90
101
  }
package/src/Runners.ts CHANGED
@@ -297,9 +297,17 @@ export const make: (options: Omit<Runners["Type"], "sendLocal" | "notifyLocal">)
297
297
  },
298
298
  notify(options_) {
299
299
  const { discard, message } = options_
300
- return notifyWith(message, (message) => {
300
+ return notifyWith(message, (message, duplicate) => {
301
301
  if (message._tag === "OutgoingEnvelope") {
302
302
  return options.notify(options_)
303
+ } else if (!duplicate && options_.address._tag === "Some") {
304
+ return Effect.catchAllCause(
305
+ options.send({
306
+ address: options_.address.value,
307
+ message
308
+ }),
309
+ () => Effect.orDie(replyFromStorage(message))
310
+ )
303
311
  }
304
312
  return discard ? options.notify(options_) : options.notify(options_).pipe(
305
313
  Effect.fork,
@@ -367,25 +375,30 @@ export class Rpcs extends RpcGroup.make(
367
375
  envelope: Envelope.PartialEncoded
368
376
  },
369
377
  success: Schema.Void,
370
- error: EntityNotManagedByRunner
378
+ error: Schema.Union(EntityNotManagedByRunner, AlreadyProcessingMessage)
371
379
  }),
372
380
  Rpc.make("Effect", {
373
381
  payload: {
374
- request: Envelope.PartialEncodedRequest
382
+ request: Envelope.PartialEncodedRequest,
383
+ persisted: Schema.Boolean
375
384
  },
376
385
  success: Schema.Object as Schema.Schema<Reply.ReplyEncoded<any>>,
377
386
  error: rpcErrors
378
387
  }),
379
388
  Rpc.make("Stream", {
380
389
  payload: {
381
- request: Envelope.PartialEncodedRequest
390
+ request: Envelope.PartialEncodedRequest,
391
+ persisted: Schema.Boolean
382
392
  },
383
393
  error: rpcErrors,
384
394
  success: Schema.Object as Schema.Schema<Reply.ReplyEncoded<any>>,
385
395
  stream: true
386
396
  }),
387
397
  Rpc.make("Envelope", {
388
- payload: { envelope: Schema.Union(Envelope.AckChunk, Envelope.Interrupt) },
398
+ payload: {
399
+ envelope: Schema.Union(Envelope.AckChunk, Envelope.Interrupt),
400
+ persisted: Schema.Boolean
401
+ },
389
402
  error: rpcErrors
390
403
  })
391
404
  ) {}
@@ -436,20 +449,31 @@ export const makeRpc: Effect.Effect<
436
449
  )
437
450
  },
438
451
  send({ address, message }) {
452
+ const rpc = message.rpc as any as Rpc.AnyWithProps
453
+ const isPersisted = Context.get(rpc.annotations, Persisted)
439
454
  if (message._tag === "OutgoingEnvelope") {
440
455
  return RcMap.get(clients, address).pipe(
441
- Effect.flatMap((client) => client.Envelope({ envelope: message.envelope })),
456
+ Effect.flatMap((client) =>
457
+ client.Envelope({
458
+ envelope: message.envelope,
459
+ persisted: isPersisted
460
+ })
461
+ ),
442
462
  Effect.scoped,
443
463
  Effect.catchAllDefect(() => Effect.fail(new RunnerUnavailable({ address })))
444
464
  )
445
465
  }
446
- const rpc = message.rpc as any as Rpc.AnyWithProps
447
466
  const isStream = RpcSchema.isStreamSchema(rpc.successSchema)
448
467
  if (!isStream) {
449
468
  return Effect.matchEffect(Message.serializeRequest(message), {
450
469
  onSuccess: (request) =>
451
470
  RcMap.get(clients, address).pipe(
452
- Effect.flatMap((client) => client.Effect({ request })),
471
+ Effect.flatMap((client) =>
472
+ client.Effect({
473
+ request,
474
+ persisted: isPersisted
475
+ })
476
+ ),
453
477
  Effect.flatMap((reply) =>
454
478
  Schema.decode(Reply.Reply(message.rpc))(reply).pipe(
455
479
  Effect.locally(FiberRef.currentContext, message.context),
@@ -473,7 +497,12 @@ export const makeRpc: Effect.Effect<
473
497
  return Effect.matchEffect(Message.serializeRequest(message), {
474
498
  onSuccess: (request) =>
475
499
  RcMap.get(clients, address).pipe(
476
- Effect.flatMap((client) => client.Stream({ request }, { asMailbox: true })),
500
+ Effect.flatMap((client) =>
501
+ client.Stream({
502
+ request,
503
+ persisted: isPersisted
504
+ }, { asMailbox: true })
505
+ ),
477
506
  Effect.flatMap((mailbox) => {
478
507
  const decode = Schema.decode(Reply.Reply(message.rpc))
479
508
  return mailbox.take.pipe(
@@ -692,12 +692,9 @@ export const make = Effect.gen(function*() {
692
692
 
693
693
  const checkRunnerHealth: Effect.Effect<void> = Effect.suspend(() =>
694
694
  Effect.forEach(MutableHashMap.keys(state.runners), notifyUnhealthyRunner, {
695
- concurrency: "inherit",
695
+ concurrency: 10,
696
696
  discard: true
697
697
  })
698
- ).pipe(
699
- Effect.withConcurrency(4),
700
- Effect.asVoid
701
698
  )
702
699
 
703
700
  yield* Effect.addFinalizer(() =>
@@ -54,7 +54,7 @@ export class ShardStorage extends Context.Tag("@effect/cluster/ShardStorage")<Sh
54
54
  /**
55
55
  * Refresh the locks owned by the given runner.
56
56
  *
57
- * Locks expire after 90 seconds, so this method should be called every 60
57
+ * Locks expire after 15 seconds, so this method should be called every 10
58
58
  * seconds to keep the locks alive.
59
59
  */
60
60
  readonly refresh: (
package/src/Sharding.ts CHANGED
@@ -26,8 +26,8 @@ import * as PubSub from "effect/PubSub"
26
26
  import * as Schedule from "effect/Schedule"
27
27
  import * as Scope from "effect/Scope"
28
28
  import * as Stream from "effect/Stream"
29
- import type { AlreadyProcessingMessage, MailboxFull, PersistenceError } from "./ClusterError.js"
30
- import { EntityNotManagedByRunner, RunnerUnavailable } from "./ClusterError.js"
29
+ import type { MailboxFull, PersistenceError } from "./ClusterError.js"
30
+ import { AlreadyProcessingMessage, EntityNotManagedByRunner, RunnerUnavailable } from "./ClusterError.js"
31
31
  import { Persisted } from "./ClusterSchema.js"
32
32
  import type { CurrentAddress, Entity, HandlersFrom } from "./Entity.js"
33
33
  import { EntityAddress } from "./EntityAddress.js"
@@ -118,7 +118,7 @@ export class Sharding extends Context.Tag("@effect/cluster/Sharding")<Sharding,
118
118
  */
119
119
  readonly notify: (message: Message.Incoming<any>) => Effect.Effect<
120
120
  void,
121
- EntityNotManagedByRunner
121
+ EntityNotManagedByRunner | AlreadyProcessingMessage
122
122
  >
123
123
 
124
124
  /**
@@ -211,6 +211,7 @@ const make = Effect.gen(function*() {
211
211
  }
212
212
 
213
213
  const acquired = yield* shardStorage.acquire(selfAddress, unacquiredShards)
214
+ yield* Effect.ignore(storage.resetShards(acquired))
214
215
  for (const shardId of acquired) {
215
216
  acquiredShards.add(shardId)
216
217
  }
@@ -233,7 +234,7 @@ const make = Effect.gen(function*() {
233
234
  Effect.forkIn(shardingScope)
234
235
  )
235
236
 
236
- // refresh the shard locks every minute
237
+ // refresh the shard locks every 10s
237
238
  yield* Effect.suspend(() =>
238
239
  shardStorage.refresh(selfAddress, [
239
240
  ...acquiredShards,
@@ -263,7 +264,7 @@ const make = Effect.gen(function*() {
263
264
  Effect.andThen(clearSelfShards)
264
265
  )
265
266
  ),
266
- Effect.delay("1 minute"),
267
+ Effect.delay("10 seconds"),
267
268
  Effect.forever,
268
269
  Effect.interruptible,
269
270
  Effect.forkIn(shardingScope)
@@ -368,6 +369,8 @@ const make = Effect.gen(function*() {
368
369
  const storageReadLock = Effect.unsafeMakeSemaphore(1)
369
370
  const withStorageReadLock = storageReadLock.withPermits(1)
370
371
 
372
+ let storageAlreadyProcessed = (_message: Message.IncomingRequest<any>) => true
373
+
371
374
  if (storageEnabled && Option.isSome(config.runnerAddress)) {
372
375
  const selfAddress = config.runnerAddress.value
373
376
 
@@ -380,6 +383,15 @@ const make = Effect.gen(function*() {
380
383
  const sentRequestIds = new Set<Snowflake.Snowflake>()
381
384
  const sentRequestIdSets = new Set<Set<Snowflake.Snowflake>>()
382
385
 
386
+ storageAlreadyProcessed = (message: Message.IncomingRequest<any>) => {
387
+ if (!sentRequestIds.has(message.envelope.requestId)) {
388
+ return false
389
+ }
390
+ const state = entityManagers.get(message.envelope.address.entityType)
391
+ if (!state) return true
392
+ return !state.manager.isProcessingFor(message, { excludeReplies: true })
393
+ }
394
+
383
395
  while (true) {
384
396
  // wait for the next poll interval, or if we get notified of a change
385
397
  yield* storageReadLatch.await
@@ -643,8 +655,11 @@ const make = Effect.gen(function*() {
643
655
  })
644
656
  })
645
657
 
646
- const notifyLocal = (message: Message.Outgoing<any> | Message.Incoming<any>, discard: boolean) =>
647
- Effect.suspend(() => {
658
+ const notifyLocal = (
659
+ message: Message.Outgoing<any> | Message.Incoming<any>,
660
+ discard: boolean
661
+ ) =>
662
+ Effect.suspend((): Effect.Effect<void, EntityNotManagedByRunner | AlreadyProcessingMessage> => {
648
663
  const address = message.envelope.address
649
664
  if (!isEntityOnLocalShards(address)) {
650
665
  return Effect.fail(new EntityNotManagedByRunner({ address }))
@@ -654,9 +669,14 @@ const make = Effect.gen(function*() {
654
669
  ? openStorageReadLatch
655
670
  : () => Effect.dieMessage("Sharding.notifyLocal: storage is disabled")
656
671
 
657
- return message._tag === "IncomingRequest" || message._tag === "IncomingEnvelope"
658
- ? notify()
659
- : runners.notifyLocal({ message, notify, discard })
672
+ if (message._tag === "IncomingRequest" || message._tag === "IncomingEnvelope") {
673
+ if (message._tag === "IncomingRequest" && storageAlreadyProcessed(message)) {
674
+ return Effect.fail(new AlreadyProcessingMessage({ address, envelopeId: message.envelope.requestId }))
675
+ }
676
+ return notify()
677
+ }
678
+
679
+ return runners.notifyLocal({ message, notify, discard })
660
680
  })
661
681
 
662
682
  const isTransientError = Predicate.or(RunnerUnavailable.is, EntityNotManagedByRunner.is)