DNS
From a name to an address: caches, recursive resolvers, root, TLD and authoritative servers, record types, TTLs — and a failure simulator.
Humans want `engineer-atlas.dev`, routers want `203.0.113.10`, and no single file or server could hold the mapping for every name on earth — so DNS splits the namespace into a hierarchy of zones, delegates each to its owner, and lets a resolver near you walk that hierarchy and cache what it learns.
A name is resolved by falling through caches — browser, OS, recursive resolver — and, on a full miss, by the resolver walking root → TLD → authoritative, with every hop’s answer stored for its TTL; which cache you hit explains both the speed and why two people get different answers.
A zone is a set of typed records — A/AAAA for addresses, CNAME for aliases, MX and TXT for mail and verification, NS and SOA for delegation and zone metadata, SRV and PTR for service discovery and reverse lookup — each with rules that bite (CNAME at the apex, chain cost) and a TTL you choose deliberately, especially before a migration.
DNS fails in a small number of distinct ways — cache expiry, a dead resolver, a wrong record, an over-long TTL, a change in flight — and each produces a different signature (NXDOMAIN, SERVFAIL, timeout, a stale or split answer) that tells you which cache or server to look at.