gen_server:call internal format & OTP compatibility

Roberto Ostinelli ostinelli@REDACTED
Wed Oct 13 22:55:52 CEST 2021

I'm writing a distributed library that I would like to be compatible with
clusters running multiple OTP versions. I am aware that backwards
compatibility for the distribution protocol is only promised for two major
releases in either direction, but that's already pretty significant.

Therefore, for instance maybe I should avoid using gen_server:call/2,3 to
call processes running on a different node with something like
gen_server:call({?MODULE, RemoteNode}, Message).

My thinking is that the internal call message format of gen_server is an
internal implementation detail subject to change, thus it might be
incompatible on different OTP versions, and if this is the case then the
previous call would fail.

However, it's a pity to not use the robust usage of standard API calls. On
the other hand, it does not look like this message format has changed
recently, so maybe I'm just overthinking it and should just use
gen_server:call/2,3 without fear of breaking anything.

I'd like to hear some thoughts, if someone would like to chime in.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the erlang-questions mailing list