Originally published on tamiz.pro.

Introduction

In 2023, a team at a mid-sized cloud provider replaced its aging, 180,000-line DNS resolver—responsible for resolving millions of queries per second—with a lean, 12,000-line Rust implementation. The migration took six months. There was no major outage. No postmortem. No panic at 3 a.m.

This isn’t a story about clever engineering tricks or heroic firefighting. It’s about discipline, incrementalism, and choosing the right abstraction boundaries when replacing critical infrastructure.

Why Replace a Resolver?