MetalLB is a Kubernetes-native load balancer for bare-metal clusters. Two cooperating workloads implement the system: a cluster-scoped controller that allocates IP addresses from CRD-defined IPAddressPools and writes Service status updates, and a DaemonSet of speaker pods on each node that announce assigned IPs to the physical network. Announcement is either BGP (via a from-scratch native Go BGP stack, a deprecated FRR sidecar mode, or the newer FRR-K8s API that generates FRRConfiguration CRs) or Layer2 (ARP/NDP responders with memberlist-based fast failover detection and deterministic speaker election). All user configuration flows through CRDs — IPAddressPool, BGPPeer, BGPAdvertisement, L2Advertisement, Community, BFDProfile, and ConfigurationState — validated by admission webhooks, with a configmaptocrs tool migrating legacy ConfigMap configuration to the CRD model. The controller/speaker split, a listener abstraction that delivers config changes to protocol handlers, and a common bgp.Session interface across backends give the architecture a clean, modular shape.
AdGuard Home is a production-grade, self-hosted network-wide ad/tracker blocking DNS server. In operation it listens for DNS queries, applies filtering via blocklists, custom rules, parental control, safe search, and DNS rewrites, forwards remaining queries to upstream resolvers over plain DNS, DoT, DoH, or DoQ, and records query logs and statistics. It also includes a DHCP server for IPv4/IPv6, client identification through ARP/WHOIS/rDNS/DHCP/hosts files, TLS/encryption management, and a REST API documented in the openapi directory. The Go backend is a modular monolith organized into domain packages such as dnsforward, filtering, querylog, stats, dhcpd/dhcpsvc, home, and the new next/websvc, with heavy use of interfaces and OS-specific build tags for Linux, macOS, Windows, FreeBSD, and OpenBSD. The repository ships two frontends in parallel: a legacy React/Redux application under client/ and a newer SolidJS application under client_v2/, both built with webpack and backed by the same HTTP control API. Entry points include main.go for the stable product and main_next.go for an ongoing architectural rewrite. Configuration is stored in YAML and migrated through 34 schema versions using a dedicated migration framework. The codebase is extensively tested at both unit and end-to-end levels, and release packaging scripts cover many OS/arch targets. The presence of JSON tracker metadata and safe-search rule lists is operational data, not research artifacts; this is not a data pipeline or analytics repository. Primary data flows: DNS request -> dnsforward request handler -> client identity lookup -> filtering engine (urlfilter, custom rules, hosts) -> safe-search/rewrite handling -> upstream forwarding -> response; each query is written to a binary query log and aggregated into statistics. DHCP leases persist through JSON databases, and embedded datasets such as whotracksme metadata and blocked-services definitions support UI and filtering behavior. The largest current risk is the dual-frontend and dual-backend transition, which creates duplication and increases maintenance burden, but the core DNS/DHCP/filtering paths remain coherent and well-tested.