The erldns repository is an Erlang/OTP-based authoritative DNS server that processes DNS queries through a modular pipeline architecture. It loads zone data from JSON or standard zone files, provides DNSSEC validation and signing, and includes features like query throttling, EDNS0 processing, and an HTTP-based Admin API for runtime zone management and monitoring. The system is built using OTP supervision trees, with separate supervisors for listeners, pipeline workers, and zone loading. Key architectural strengths include a reusable pipeline pattern for extensible query processing, a worker pool for asynchronous operations, a segmented cache abstraction for high-concurrency scenarios, and admission control mechanisms using CoDel and Cubic algorithms. The Admin API follows a middleware pattern allowing custom extensions, and the zone loading subsystem supports pluggable codecs for custom record types. The codebase demonstrates strong engineering practices with comprehensive testing, dependency management, and observability via telemetry.
Technitium DNS Server is a full-featured, cross-platform DNS server written in C# (.NET). It serves both authoritative and recursive DNS with support for DNSSEC, DNS-over-TLS/HTTPS/QUIC, EDNS Client Subnet, caching, blocking, and a built-in DHCP server. The server includes a web-based management console with REST API, a Windows system tray app, and a plugin system that allows extending functionality via DNS apps (e.g., geo-location, failover, query logging to SQL databases, block pages). The architecture uses a custom domain tree data structure for efficient lookups, a zone management hierarchy (primary, secondary, stub, forwarder, catalog), and a channel-based producer-consumer pattern for logging and statistics. The codebase is actively maintained with frequent releases and security fixes. While the overall design is solid and modular, some files are large and there is reliance on binary serialization with versioning that adds complexity.