Edge Cache and CDN Platform  ·  View 08 of 29  ·  3 · Structure

Container Architecture

The processes that run on every PoP and in the core, and the few lines that connect them.

Editable source SVG draw.io All views
Control plane · core DCs · Kubernetes Change Config repo Forgejo Compiler + validator CUE · keyspec Ring controller Temporal Invalidate Purge API Go · 3 roles NATS JetStream R3 · three sites Control DB PostgreSQL · Patroni Trust OpenBao keys · origin PKI SPIRE server TPM attestation Keycloak operator OIDC Edge PoP · ×18 · bare metal, no Kubernetes L4 pair Katran XDP · IPIP to nodes BIRD announce while healthy pop-guard withdraw rules Cache node · ×3 to ×6 Envoy TLS · H3 · token Traffic Server keyspec · tagguard Vector bounded buffer PoP services PoP agent Go · signed bundles NATS leaf node JetStream mirror Prometheus local · 15 days Shield pools same node image Kafka → ClickHouse delivery analytics mirror miss records Container Architecture Data store Application we own Queue / topic Security / platform Interface / broker synchronous event / async The PoP agent pulls signed bundles from the core over HTTPS; omitted here, drawn on views 19 and 23. v 1.0 · owner Edge Architecture · date 2026-09

Decisions

  • PoPs run on bare metal with systemd units from a signed, read-only image. Kubernetes stays in the core. A scheduler at the edge would be one more thing that can decide not to run the cache.
  • Envoy and Traffic Server are separate processes on the same host, talking over loopback. The process that holds TLS keys is small, and the process that parses origin responses holds no keys (ADR-06).
  • Shield pools run the same image as edge nodes with different configuration. One artefact, one upgrade path, two roles.

Numbers

  • Tier-1 PoP: 2 L4 hosts, 6 edge nodes. Edge-only PoP: 2 L4 hosts, 3 edge nodes. Shield sites add 4 shield nodes.
  • Edge node: one 64-core CPU, 512 GB RAM with 384 GB for the RAM cache, 2 × 100 GbE, 8 × 7.68 TB NVMe at tier 1 and 4 at the edge.

Risks

  • NATS is the one product with no earlier production history in this organisation. The proof of concept runs a 14-day leaf-node disconnection and replay before anything depends on it.