I’ve read thru the Erlang documentation for Distributed Erlang but haven’t had any luck finding my answer. I don’t know if inet_tcp_dist will simply refuse to connect to a node from a different OTP version, or if it has its own protocol version that increments at a different cadence than OTP releases. Ditto for other distribution protocols, like inet_tls_dist.
If the built in distribution protocols do not support connecting nodes across versions, I would imagine it’s possible to develop a custom carrier that supported it, right? As long as you accept that you’ll have to find a way to translate any incompatible semantics between versions.
Try Distribution Protocol — erts v15.2.3 instead. I couldn’t find any general statement of supported version ranges during a quick scan of that, but in general I’d expect a two major version difference to be supported.
I’d just point point that you can communicate with two previous major releases at max, but not by default. You need to set +R emulator flag properly. E.g. if you’re running OTP27 and want to communicate with OTP25/26/27, you need to set +R 25 when starting a node.
It is not needed to set that flag, the Erlang distribution will automatically figure out how to talk to older released. That flag was added roughly 20 years ago and I don’t think it has had any purpose for atleast 12 years. I’ll see if we can remove it alltogether to remove any confusion.
That’s nice. The docs says that “The distribution mechanism is not backward compatible by default.” so we need to at least remove that from the docs, but removing the flag entirely would be the best option.