Caching details

I’m trying to understand exactly how cloudflare cache works. In most answers that I’ve found states that cache work per DC basis. But:

I’m making a request to some random url, response: Cache: MISS, colo: AMS.
Then I’m making a request to the same url from a different IP, response: Cache: HIT, colo: PRG.

So it looks like cache shared between at least some DC (I don’t have anything like Argo enabled).
Can anybody comment about it? Is it documented somewhere?

To me, this says that someone near there requested that file before you, so it’s cached.

It’s unlikely. I run it again for random 404 url that I’m sure nobody requested:

< HTTP/2 404
< date: Thu, 23 Jul 2020 07:14:41 GMT
< cf-cache-status: MISS
< cf-ray: 5b739b1b497efca1-VIE

Second run:

< HTTP/2 404
< date: Thu, 23 Jul 2020 07:15:23 GMT
< age: 43
< cf-cache-status: HIT
< cf-ray: 5b739c273f273240-FRA

Again - different DC (colo), but request is cached.

I too have noticed something similar, I am served by my closest PoP, but the largest PoP in my region will also have it cached and will result in a cache HIT.

I believe this is what Cloudflare refers to as “Tiered caching” which is mentioned on the Argo page https://www.cloudflare.com/products/argo-smart-routing/

In your first case, it doesn’t make sense, because I could assume that AMS would be a much bigger COLO than PRG. I can’t explain your second 404 situation, because you said you don’t have Argo enabled… perhaps Cloudflare is just doing this for efficiency anyway.