bobbyiliev's profile
Bobby Iliev@bobbyiliev•Apr 18
62.5K
Materialize's profile
Post cover image

How We Built Our Own DNS Server

From sliplane.io•Apr 18•8m read time

Sliplane hit Hetzner DNS record limits and 90-minute propagation delays, so they built a custom DNS server in ~1000 lines of Go. The solution uses the hidden primary pattern: a private Go server (built on miekg/dns) serves zone data via AXFR/IXFR to Hetzner Robot's public secondary nameservers. Postgres LISTEN/NOTIFY acts as the event bus — triggers fire on service changes, the Go server hashes records to detect real changes, bumps the SOA serial, and sends DNS NOTIFY to secondaries. The result: propagation dropped from up to 90 minutes to near-instant. Key lessons include the need to implement IXFR (not just AXFR) since Hetzner Robot secondaries don't always fall back cleanly, and that the hidden primary pattern avoids vendor lock-in since AXFR/NOTIFY are standard protocols.

18 CommentsHeart3 Awards

Sort:

bobbyiliev's user avatar
Bobby Iliev
@bobbyiliev
Joined Sep 24. 2020
62.5K
Materialize's profile

Materialize

Verified

DevOps Engineer | Laravel enthusiast | Docker Captain

Would you recommend this post?

Copy link
WhatsApp
Facebook
X
New Squad
  • © 2026 Daily Dev Ltd.
  • Guidelines
  • Explore
  • Tags
  • Sources
  • Squads
  • Leaderboard