Implemented a c-node
My first attempt was writing a threaded c-node server, but that
fails dramatically if it is connected to multiple nodes.
OS-Process separation might be the best way to go, also for scaling this
out, as the footprint of a c-node client is relatively small.
So for that reason, I wrote priv/cclient, and lib/myhtmlex/safe/cnode.ex.
The Myhtmlex.Safe.Cnode module is a gen server that allows the cclient
to be part of a supervision tree.
This is accomplished by issuing Node.monitor as soon as the cclient is
connected to our node. If cclient dies for some reason, a :nodedown
event will be trigger and brings down the GenServer.
Allowing a supervisor to restart the cclient.
There is quite some performance overhead when using the cclient, but
that was expected due to the message serialisation going on. Its not too
bad.