CDN & Edge-Caching Request Path
One request from a browser through anycast DNS, WAF and an edge function to the PoP cache, then the hit / miss branch out to the regional cache and origin — with TTLs, invalidation policy and hit ratio called out.
Rendering…
Make it your own.
{
"nodes": [
{ "id": "pop", "type": "container", "label": "CloudFront PoP — Frankfurt", "x": 420, "y": 40, "width": 420, "height": 460, "fill": "rgba(220,252,231,0.26)", "stroke": "#15803d" },
{ "id": "reg", "type": "container", "label": "Regional edge cache", "x": 880, "y": 140, "width": 250, "height": 220, "fill": "rgba(254,243,199,0.26)", "stroke": "#b45309" },
{ "id": "orig", "type": "container", "label": "Origin — eu-west-1", "x": 1170, "y": 40, "width": 280, "height": 460, "fill": "rgba(219,234,254,0.26)", "stroke": "#1d4ed8" },
{ "id": "usr", "type": "user-circle", "label": "Visitor — Berlin", "x": 40, "y": 210, "width": 140, "height": 104, "fill": "#e0f2fe", "stroke": "#0369a1" },
{ "id": "dns", "type": "cloud", "label": "Anycast DNS", "x": 220, "y": 225, "width": 160, "height": 74, "fill": "#e0f2fe", "stroke": "#0369a1" },
{ "id": "waf", "type": "shield-check", "label": "WAF — bot + rate rules", "x": 450, "y": 90, "width": 170, "height": 104, "fill": "#fee2e2", "stroke": "#b91c1c" },
{ "id": "efn", "type": "cloud-function", "label": "Edge function — auth, A/B", "x": 450, "y": 230, "width": 170, "height": 104, "fill": "#dcfce7", "stroke": "#15803d" },
{ "id": "ecac", "type": "cdn", "label": "Edge cache — TTL 300 s", "x": 450, "y": 370, "width": 170, "height": 104, "fill": "#dcfce7", "stroke": "#15803d", "bold": true },
{ "id": "hit", "type": "diamond", "label": "Cache hit?", "x": 650, "y": 222, "width": 120, "height": 120, "fill": "#fef9c3", "stroke": "#ca8a04" },
{ "id": "rcac", "type": "file-stack", "label": "Regional cache — TTL 24 h", "x": 910, "y": 190, "width": 190, "height": 104, "fill": "#fef3c7", "stroke": "#b45309" },
{ "id": "oalb", "type": "aws-elb", "label": "Origin ALB", "x": 1200, "y": 90, "width": 130, "height": 110, "fill": "#fff7ed", "stroke": "#f97316" },
{ "id": "oapp", "type": "docker-container", "label": "Origin app (ECS)", "x": 1200, "y": 230, "width": 180, "height": 104, "fill": "#dbeafe", "stroke": "#1d4ed8" },
{ "id": "obuk", "type": "aws-s3", "label": "S3 — static origin","x": 1200, "y": 370, "width": 130, "height": 110, "fill": "#fff7ed", "stroke": "#f97316" },
{ "id": "inv", "type": "note", "label": "Invalidation: versioned asset paths, /api/* never cached", "x": 420, "y": 560, "width": 300, "height": 90, "fill": "#fef9c3", "stroke": "#ca8a04" },
{ "id": "met", "type": "line-chart", "label": "Cache hit ratio 94 %", "x": 780, "y": 560, "width": 180, "height": 104, "fill": "#ede9fe", "stroke": "#6d28d9" }
],
"edges": [
{ "id": "e1", "source": "usr", "target": "dns", "label": "GET /product/42", "thickness": 3 },
{ "id": "e2", "source": "dns", "target": "waf", "label": "nearest PoP", "thickness": 3 },
{ "id": "e3", "source": "waf", "target": "efn" },
{ "id": "e4", "source": "efn", "target": "ecac", "label": "rewrite cache key" },
{ "id": "e5", "source": "ecac", "target": "hit", "thickness": 2 },
{ "id": "e6", "source": "hit", "target": "usr", "label": "HIT · 12 ms", "thickness": 3 },
{ "id": "e7", "source": "hit", "target": "rcac", "label": "MISS" },
{ "id": "e8", "source": "rcac", "target": "oalb", "label": "MISS · origin fetch" },
{ "id": "e9", "source": "oalb", "target": "oapp" },
{ "id": "e10", "source": "oapp", "target": "obuk", "label": "signed URLs" },
{ "id": "e11", "source": "obuk", "target": "rcac", "label": "fill", "style": "dashed" },
{ "id": "e12", "source": "rcac", "target": "ecac", "label": "fill", "style": "dashed" },
{ "id": "e13", "source": "inv", "target": "ecac", "label": "purge", "style": "dashed" },
{ "id": "e14", "source": "ecac", "target": "met", "style": "dashed" }
]
}