[erlang-questions] C nodes and OTP

David Welton davidnwelton@REDACTED
Thu Jan 17 10:01:24 CET 2013

> C nodes have been a non-intrusive way to communicate with Erlang nodes, and
> is used in jinterface for JVM communication.  So the main benefit of a C
> node is decoupling the startup of the C node code and the Erlang node code.
> If you don't need the startup decoupled, I believe an Erlang port is a
> better choice.  If you want a simpler way of doing C-node-like integration,
> I have a project called CloudI (http://cloudi.org), which provides language
> integration (including Java) which avoids C nodes

One of the big advantages of a C node is that the C code can live a
relatively independent life: if it crashes, it does not take Erlang
with it.   That's more important than simplicity or speed for us.

> The scalability limitation to C nodes is related to the fully connected
> network topology that distributed Erlang makes and the use of the ERL_TICK
> message (limiting distributed Erlang to 50-100 nodes, unless you get a
> really fast network.... then perhaps 200).  So, avoiding C nodes is also
> avoiding scalability problems.

This is a semi-embedded system, so actually scalability is not really
a concern.  Latency is, but so is reliability.

David N. Welton



More information about the erlang-questions mailing list