# Two controllers read the same Deployment and both send an update based on what they read. How does the API server stop the second update from silently overwriting the first?

Kubernetes, Hard (Expert), Architecture. https://k8wiz.com/uquiz/two-controllers-read-the-same-deployment-and-both-send-an-update-based-on-what-they-read-how-does-the-api-server-stop-the-second

- A. The API server locks the object while a client has it open
- B. etcd merges both updates field by field automatically
- C. The controller manager queues updates and applies them in order
- D. A stale resourceVersion in the update gets a 409 Conflict

**Answer:** A stale resourceVersion in the update gets a 409 Conflict

**Explanation:** Kubernetes uses optimistic concurrency. Every object has a resourceVersion that changes on each write. An update that sends an outdated resourceVersion fails with 409 Conflict, and the client has to read the object again and retry. Server-side apply adds field ownership on top of this, so conflicts are reported per field.
