-
Notifications
You must be signed in to change notification settings - Fork 9
approach to retries #47
Comments
Message retry seems to depend on the message type or the operation that will be triggered by that message. Perhaps messages can be categorized in idempotent vs non-idempotent messages (like REST) depending on the operation that they trigger. For example,
This leads me to think that the message producer needs some context to decide if a Then, for message delivery strategies, there could be messages that are
|
I completely agree with everything you wrote. Especially...
... and...
I think it's up to us to ensure that the necessary context is accessible to the developer, who can use it alongside their own monitoring/resubmission logic. Mocking out some example scenarios would be a good idea... assuming we think message-specific retries is an early priority (not so sure that it is––what're your thoughts?). However... for fun, let's play this out a bit more. Your 4 bullet points highlight some key considerations, such as As I write out these questions, the hard-coding of use-case specific handling seems undesirable––even for std effects. Even if we do it "right," it will be "wrong" for some consumers. Probably best to steer clear of most message-related retries for now. |
Yes, it seems that message retry should not be responsibility of the RPC client. |
Let's create an |
When an RPC server disconnects unexpectedly, do we attempt to reconnect, re-send any egress messages, misc? How about for transactions? If the user has encoded the transaction with a nonce and window of validity, yes. What if they have not? Should users need to explicitly opt into retry behavior? Should they specify their own back-off algorithm? Should they specify their own fallback logic beyond simply re-sending? A lot of questions to answer regarding approach to retries.
The text was updated successfully, but these errors were encountered: