Developing for Debugging (2025)
Summary
The post explains Oxide's two-tier DNS architecture (external and internal) and how the control plane uses background tasks and the Omicron debugger (omdb) to propagate DNS changes while collecting observable status. It demonstrates 'debugger-driven development' for DNS systems, showing how detailed propagation status can help pinpoint failures and exonerate software when propagation succeeds.