-
Notifications
You must be signed in to change notification settings - Fork 10
Endpoints should not be durable #58
Comments
Good find in the docs! Having them be durable, however, does mean that an endpoint can die and then come back up and respond to messages that haven't yet reached their timeout - it's a nice feature to have on occasion and has saved some of our services from causing larger failures before. Batching might be the way to go, I suppose? But we'd need some rules for how/when it's done. |
That is expected IMO. Otherwise there is no difference between endpoint and listener semantics. |
Aye so making them non-durable is not an option there then. So batching? |
Well my point is that i think endpoints should not be durable. And it's fine that messages can be lost. Retrying would help with |
Ah you reckon? I guess it makes sense for an endpoint to not back up requests for itself, though then I suppose we'd need something so that requesters weren't waiting for services to come back up (i.e., hitting a dead endpoint should return an error immediately rather than waiting 30 seconds). #43's a discussion for that. If we did do that, I think I'd like to be able to add durable endpoints as an added option; they are very useful sometimes, but if they have a scary performance hit under load and act a bit differently we can just explain that in an option in the docs and folks can use it if they choose. That sound sensible? |
#45 was an issue regarding the possibility of a "transient" option for endpoints (what we're suggesting is the default here). Would making it the default be considered a breaking change? It wouldn't actively break things, but it does change how they behave, albeit indirectly. |
correct
I think so
As long as |
I'll set up a PR stub that we can use to start working on it. |
Looking at this a bit more carefully, it doesn't look like it'd be this that's affecting us. The docs there mention persistent messages that travel to durable queues, but messages sent via requests and emits are always transient (persistent requires either This may still be an intuitive change, but I don't think it'll have any lasting effect on response times etc. |
https://www.rabbitmq.com/confirms.html
The text was updated successfully, but these errors were encountered: