Erlang / Erlang Advanced Interview questions
Why is the Erlang distribution protocol not encrypted by default, and how can you secure inter-node traffic?
The standard distribution protocol (used for node-to-node traffic once the cookie handshake succeeds) sends Erlang term data in plaintext over TCP — it was designed assuming nodes sit on a trusted, private network, not a hostile or public one, so encryption wasn't built in as the default to avoid the performance cost for every deployment that doesn't need it.
%% enabling TLS distribution erl -proto_dist inet_tls \ -ssl_dist_optfile /path/to/ssl_dist.conf \ -sname mynode
To secure inter-node traffic, Erlang supports swapping the distribution transport to
inet_tls, which wraps the same distribution protocol in TLS using certificates you configure via
an SSL distribution options file — every node in the cluster needs matching configuration to
authenticate each other and encrypt the link. In practice, many deployments instead isolate distributed Erlang
traffic entirely inside a private network or VPN rather than paying the TLS overhead, reserving
inet_tls for cases where nodes genuinely must communicate across untrusted networks.
More Related questions...