This trace follows the actual state transitions behind the companion DNS Resolution Is a Chain of Cached Questions. It describes a common execution path; implementation details can vary, so keep the contract separate from the mechanism.
Step 1: Ask the configured resolver
DNS maps names to typed records through a distributed hierarchy. A stub resolver usually asks a recursive resolver to find an answer. That resolver may consult caches, follow referrals from root to top-level and authoritative servers, and return records with a time-to-live.
Step 2: Check resolver cache
For a hostname, the answer can involve a CNAME alias followed by address records. The recursive resolver caches each record within its TTL, so two clients can observe different answers during a change. Negative answers can also be cached, affecting how quickly a newly created name becomes visible.
Step 3: Follow a referral if needed
A recursive resolver can answer from cached data or follow referrals through the DNS hierarchy; the returned TTL controls cache lifetime and clients can see old data until it expires.
At this point, record the state that changed and check the invariant before advancing. If the operation repeats, make clear which values persist and which are recomputed.
Step 4: Return the authoritative record
DNS is not a single global database lookup and a resolver’s cache may be stale until expiration. Multiple A or AAAA records do not guarantee that every client uses them as intended. DNSSEC can authenticate signed DNS data, but it does not encrypt ordinary DNS queries or secure the application protocol.
Step 5: Cache the answer until expiry
A service moves to a new address but some users keep reaching the old one. Trace which caches may be involved and explain why lowering TTL immediately before a change may not help clients that cached an earlier TTL.
The trace is complete when the result satisfies the stated contract. Compare this model with the concrete runtime or system you are studying before making a performance claim.