Composite.php
A DNS API Client wrapping multiple backends
This should work with any number of backends but it is really designed to work with one primary full-access backend and a second backend which might be limited in reliability or scope.
Have a leading Db based backend and a secondary AWS backend with limited privileges (might not be allowed to create or list zones, for example).
Strategy:
Always run on the backends in the order they are configured. Write statements run on all backends unless masked. Read Single Zone or Record statements will generally return the version of the first backend which has the item at all and is not masked. Read Multiple will get the collection from the first backend which has it and is not masked.
Backends may make internal reads only from their own data
Based on an initial version by Diana Hille