Why do developers find DNS so hard? It's just cache invalidation and naming things.
Probably because, unlike network-knowledge-first folks, like sysadmins and those in the networking specialty fields, developers were not exposed to the lower level concepts of things like DNS, TCP/IP, etc. So they just assume one puts in a domain name in a few places, and it all should just work. And generally, when people in the appropriate specialties are in charge of things like DNS, it does. Unfortunately, this all falls apart when the dev wants to migrate/move services, or when things do break, and their networking people aren't around to fix things. Then, they go looking up the inner workings of DNS, and get overwhelmed with jargon, and assume its complicated.