Question
Design the backend for a real-time collaborative issue tracker (think a Linear/Jira board) where comments, status changes, and @-mentions stream to all viewers of a board. The hard requirement is causal consistency, not just eventual: if Alice posts a comment and Bob replies 'fixed in the comment above', no third viewer may ever see Bob's reply before Alice's comment, and a status change that references a comment must order after it — even though clients connect to whichever of 4 regional gateways is nearest and updates propagate async between regions. Scale: 2M boards, busy boards have 500 concurrent viewers, p99 propagation budget 1s within region. You do NOT need total order (two unrelated comments on different boards can be seen in any order). Explain the metadata you attach to each update and how a regional gateway decides when an update is safe to deliver.
Clarify scale and constraints first. Propose a clean component breakdown, then go deep on the hard parts — data model, bottlenecks, consistency, failure modes — and name the trade-offs you are making.