Keep source and cached-copy columns separate. In this model, add obtained time and TTL for expiry, then subtract current time for remaining lifetime. A hit does not renew the copy. At expiry, a new lookup asks the always-available source. No early refresh, serve-stale behavior or page-content cache is modeled. Name lookup, routing and application availability are separate checks.
Worked example
Separate example: obtained at 40 with TTL 30 means expiry 70. At 69, one second remains. A lookup at 70 gets the current source answer and, with TTL 30, a new expiry of 100.
Archive B / fictional lookup log
At model second 100, a resolver caches notes.test = 192.0.2.70 (Old Desk), with TTL 25 seconds. At second 112, the authoritative source changes to 192.0.2.80 (Archive). Requests occur at 118, 124 and 125; there are no other lookups. Every refreshed answer has TTL 25. Routing works. Archive page service is stopped at 125, then starts at 126. Another page request is made at 126. All times use the same model clock. Do not configure or contact these documentation-only addresses.