Atomia Domain Registration is a system for registrars that manages the connections to different registrys and handles domain registration and management.
Atomia Domain Registration provides an API which maps TLD and registry specific details into a coherent and easy to use set of methods.
The domainreg architecture is like:
One master process named "Atomia Domain Registration Scheduler". The code for this can be found in lib/Atomia/DomainReg.pm
One or more processes per configured TLD. Each is an instance of some plugin in lib/Atomia/DomainReg/Plugin.
An optional WHOIS server that also handles WDRP mails.
The plugins all extend lib/Atomia/DomainReg/RegistryPlugin.pm which contains common code and methods that work cross all TLDs.
There is one special TLD plugin called lib/Atomia/DomainReg/Plugin/Atomia.pm which handles internal objects like contacts and DNSSEC keys.
The methods exposed are defined in lib/Atomia/DomainReg/SOAPServer.pm
In addition to the main domainreg app there is a mod_perl application that takes the commands from clients, submits them to domainreg and waits for one TLD process to pick them up, execute them, and return the response.
All inter-process communication is through the transaction table in the postgresql database.