Whenever you're ready, walk me through how you'd approach this.
Design a real-time collaborative feature for a web application; how would you handle synchronization?
Explain how clients and the server communicate, how concurrent edits are ordered and merged, and how you handle disconnects, reconnects, retries, and offline changes. Discuss the tradeoffs between operational transformation, CRDTs, and server-authoritative approaches, along with consistency, data loss, latency, and observability concerns.