Depends on D5004
Adding necessary imports and objects that we're going to use in the put client.
Differential D5005
[services] Backup - Blob Put Client - Add essential objects • karol on Sep 1 2022, 4:06 AM. Authored by Tags None Referenced Files
Details
Diff Detail
Event Timeline
Comment Actions
If the client gets to be in an unhealthy state, then there should be some logic to get try and get the client back into a healthy state and retry the get/put. Currently, an unhealthy client will both report an error and drop the message.
Yes, but the message also gets dropped. There should be some re-try logic (which can be done in another ticket). Comment Actions
Sorry, but I disagree. I think when the client gets into an unhealthy state, it should drop the connection and return an error. If we wanted to really attempt to retry, we should at least add some logic of when to do this and when not. If we get an error like provided holder already exists in the database, then what is the point of retrying? If we try again, it won't disappear magically I guess, will it? And adding logic for this will probably result in adding an additional layer of abstraction or something - we could have a type of error that has a flag shouldRetry, something like this. All in all, don't think we should do it here and I don't think this is necessary and important either. The way I see it now is that we could have a button on the client side in the UI saying retry when there's an error returned. Comment Actions
Wouldn't that mean that a previous put was already successful? Seems like a state that shouldn't ever occur, but I agree it should be handled by dropping. I think the concept of the client and message are being fused here. There's a difference between a message being handled, and the client being healthy. I'm refering to the lifecycle of a BidiClient, not the lifecycle of a message passed through a BidiClient. Either way, seems like we are just pushing this through, and creating tasks for others to address concerns. |