-
I have a question regarding the event delivery guarantees in etcd's watch mechanism. Specifically, does etcd ensure exactly-once delivery of events to clients? I understand that gRPC has an automatic retry mechanism, which might be triggered in case of network issues. Given that a single watch response in etcd can contain data for multiple revisions (e.g., revisions 2 and 3), if a response is retried, it could lead to duplicate events being delivered to the client. This could potentially disrupt the order of revisions as perceived by the client. I checked the documentation at etcd API Guarantees, but I couldn't find specific details about handling retries and ensuring exactly-once delivery in such scenarios. Could you please clarify how etcd handles such scenarios and whether it guarantees exactly-once delivery of events? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Yes, it's not directly stated but can be inferred from Reliable and Unique guarantees. https://etcd.io/docs/v3.5/learning/api_guarantees/#watch-apis Reliable means that you get a at least one delivery as etcd should never drop an event. Combined with Unique it gives exactly-once, as unique should prevent duplicates. |
Beta Was this translation helpful? Give feedback.
Yes, it's not directly stated but can be inferred from Reliable and Unique guarantees. https://etcd.io/docs/v3.5/learning/api_guarantees/#watch-apis
Reliable means that you get a at least one delivery as etcd should never drop an event. Combined with Unique it gives exactly-once, as unique should prevent duplicates.