I work on our DNS server, but I don't have a copy of the email that Matthew sent to the PowerDNS guys, but DNS is fundamental to what we do and so the ability to modify the DNS server was pretty important.
I think we got to the point where we just said "there are N features that we want" and decided to build our own. The result is that we've been able to do all sorts of stuff that's CloudFlare-specific: bear in mind that we handle two different sorts of DNS queries: external ones (that might or might not serve a CloudFlare IP that is proxying for a customer site) and internal ones (that need access to public, non-CloudFlare IPs). We also recently introduced a CNAME-flattening feature: http://blog.cloudflare.com/introducing-cname-flattening-rfc-...
There are other things we want to do to be fast in two ways: fast to respond (http://www.solvedns.com/dns-comparison/2014/04) and fast to update (which means integration with our replicated, global settings databases).
We also have all sorts of special things that we do to deal with attacks on our DNS infrastructure that include the DNS server talking directly to NICs for filtering and packet handling. We're also generating bpf bytecode directly for specific filtering activities.
Bottom line was that DNS is a core technology for CloudFlare; it made sense to totally own it. I don't think this says anything bad about PowerDNS. Note: HTTP serving is a core technology. If nginx weren't so configurable (especially through OpenResty) we could easily have been having this discussion about a web server. But equally agentzh (who wrote OpenResty) works for us.
I think we got to the point where we just said "there are N features that we want" and decided to build our own. The result is that we've been able to do all sorts of stuff that's CloudFlare-specific: bear in mind that we handle two different sorts of DNS queries: external ones (that might or might not serve a CloudFlare IP that is proxying for a customer site) and internal ones (that need access to public, non-CloudFlare IPs). We also recently introduced a CNAME-flattening feature: http://blog.cloudflare.com/introducing-cname-flattening-rfc-...
There are other things we want to do to be fast in two ways: fast to respond (http://www.solvedns.com/dns-comparison/2014/04) and fast to update (which means integration with our replicated, global settings databases).
We also have all sorts of special things that we do to deal with attacks on our DNS infrastructure that include the DNS server talking directly to NICs for filtering and packet handling. We're also generating bpf bytecode directly for specific filtering activities.
Bottom line was that DNS is a core technology for CloudFlare; it made sense to totally own it. I don't think this says anything bad about PowerDNS. Note: HTTP serving is a core technology. If nginx weren't so configurable (especially through OpenResty) we could easily have been having this discussion about a web server. But equally agentzh (who wrote OpenResty) works for us.