Erlang / Erlang Advanced Interview questions
Explain the internal working of the Erlang distribution handshake between two nodes?
When one node connects to another, they don't just open a socket and start exchanging Erlang messages — they first perform a handshake to agree on protocol version and prove they share the same cookie, before the connection is trusted for actual traffic.
sequenceDiagram
participant A as Node A
participant B as Node B
A->>B: send_name (node name, capability flags)
B-->>A: send_status (ok / already connected / not allowed)
B->>A: challenge (random number)
A-->>B: challenge_reply (MD5 digest of cookie+challenge)
B->>A: challenge_ack (MD5 digest confirming match)
Note over A,B: Connection now trusted for normal traffic
The core of the authentication step is a challenge-response exchange: each side generates a random number, combines it with its own cookie, hashes the result, and sends that digest instead of the cookie itself — so the cookie is never transmitted in plaintext over the wire. If the digests don't match on either side, the connection is refused before any application-level messages can flow.
More Related questions...