On a high level the design consists of two Linux virtual machines hosted on two different host servers. They both run dnsmasq, but with only one server being active at a time. DNS lookup services are directed to a virtual IP, (IPv4 and ipV6), that moves between the two servers. While it is possible to store DHCP leases in a database, a mirrored disk is used so that configuration files can also be shared. The heartbeat software manages which server holds the IP, is running the dnsmasq service and has control of the disk.
As the domain names are hosted by a third party, ddclient is used to dynamically update IPv4 addresses with them. Unfortunately there is not currently a dynamic IPv6 client available. While people may say that this should not be necessary in the few years that I have been running IPv6, (beginning around 2015), Comcast has changed my network prefix two times. That is not a lot, but it is annoying as I have to update configurations on my domain name maintainer, my local network and my firewall.
For the complete write-up of how this was implemented on my home network see the document linked below.