An Erlang like DNS service

Joe Armstrong <>
Wed Dec 9 10:35:55 CET 2009

An Erlang DNS "like" facility

I want something like dynamic DNS.

How could be extend process registration to work outside
the scope of a single Erlang node?

(And I'm not talking distributed Erlang here).

Let's suppose I have a program running on my machine
I want my friends to be able to send messages to it.

In my program all I'd like to say:

      dynamic_register(MyName, self())

MyName would be a logical name.

My friend could say:

     Pid = dynamic_whereis(Name)

To find out where the process is.

This registration should survive as long as the process is alive.  I
should be able to link to and send mesaages to Pid.

Having got a Pid I just want to say Pid ! Message and I want the
message to be delivered to the registered process.

Just as in DNS I guess this necessitates some form of administration -
we don't want wild "address squatting" etc we need some certificates
so we can prove who we are and so on.

I think such a facility would be very useful, but it raises a whole
lot of technical questions - how would you implement this?

I guess there needs to be some integration with DNS then some deep
magic in the port mapper daemon and some ipchains magic also some
STUN/NAT traversal stuff.

I view this not so much as a "killer application" but as a "killer enabler"
just as DNS is the killer enabler for millions of applications.


More information about the erlang-questions mailing list