Domain registration front end

Andy Wardley abw at
Fri Jul 27 09:53:59 BST 2007

the hatter wrote:
> Uh, one or two ourshack members thought it was, they're implicated in
> (as am I).  You may even find that this gives you some
> influence in getting things added to it if you feel it's not quite right.

<me waves/>

The front end is relatively straightforward[*].  The backend is a mary because 
you have to talk a bunch of entirely unrelated protocols to different registrars.

Off the top of my head, CentralNIC use a custom HTTP protocol (WWW::CNic), 
Tucows use XML::RPC (OpenSRS is their custom wrapper around it) and Nominet 
uses a socket-based automaton protocol.

One of them (OpenSRS ISTR) expects you to open a single connection and send 
all your requests through the one connection.  Another expects one connection 
per request.  Nominet sends you an email instead of a synchronous response, or 
something crazy like that.  I don't recall carrier pigeons featuring in any of 
the protocols, but it wouldn't surprise me if they did at some point.

For Daily, we abstracted the whole lot behind our own registrar modules which 
in turn were hidden behind a domain object.  Something like this:

   my $domain = Daily->domain('');

   if ($domain->is_available()) {
       $domain->register( name => 'Andy Wardley', etc.. );
   else {
       print $domain->name(),
             " is already registered.\n",

A Daily::Domain "knows" which Daily::Registrar to talk to (based on TLD) and 
the relevant registrar module abstracts all the mess behind it with some nice 
methods like is_available(), register(), transfer() and so on.

We have talked about open sourcing these bits if we can suitably extract them 
from the rest of the framework (which would be tricky).  But ultimately, it's 
not my decison to make and I wouldn't hold your breath.

And as the hatter says, you still need to fork out the money for your own tags 
if you want the registrars to listen to your requests and act upon them.

So unless you're thinking of starting your own domain registration and/or 
hosting company, then I think you're probably better off using daily, gandi or 
a.n.other domain registration company.  Or if there's something that Daily 
doesn't provide that you think it should then I'd be happy to forward any 
suggestions to the right people.  The framework was designed with flexibility 
in mind so that we can bolt on new services relatively easily.  Carrier 
pigeons not withstanding.


[*] until you start thinking about all the other things that go with it, like 
domain contacts, nameservers, renewals, transfers, invoicing, accounting, 
forgotten passwords, control panels, etc., etc.

More information about the mailing list