The hard case. Apply an optimistic edit; receive a different server update; then fail the
mutation. Roll back to what? Implement snapshot-restore, then invalidate-and-refetch, then an
optimistic layer over server state. Compare.
Invalidation: exact key and by key prefix. Explain why array keys beat string keys for this.
Pagination and dependent queries.
Garbage collection of unobserved entries.
Write the review guidance: optimistic UI is a latency optimisation that trades correctness under
concurrency. Name the data in your own product for which it is wrong.