We shipped a 300-POP edge tier expecting a hit-ratio problem. What we got was a correctness problem.
The purge is not a write
A purge request looks like a write to a single system, but it fans out to hundreds of independent caches with no shared clock.
You do not have a cache. You have an unsupervised replica set with a friendly CDN dashboard on top.
ts
const cacheKey = (path: string, v: number) => `${path}?__v=${v}`;