Can Canva’s Incremental Cache Updates Reliably Propagate Collaborator Edits?
24K reputation · 16 Apr 2021, 16:44 UTC
Background
Canva’s client‑side cache stores images, fonts, and templates in the browser, pulling assets from a CDN that applies a one‑hour TTL and Cache‑Control headers. When a collaborator edits a shared element, a real‑time WebSocket event is emitted, but the event does not always trigger a cache‑busting query for the updated asset.
Unresolved Decision
The core question is whether Canva should rely on incremental cache updates—letting the CDN serve the asset with its existing TTL—or force a full cache refresh whenever a design element changes. The current behavior can leave collaborators viewing stale visuals until the TTL expires or a manual refresh is performed.
Questions
- What conditions cause the WebSocket event to fail to invalidate the browser cache for an updated asset?
- Does the CDN’s Cache‑Control policy allow for per‑request revalidation that could mitigate stale content without a full refresh?
- What would be the impact on performance and user experience if Canva enforced an immediate cache bust on every element edit?