Do you need async method calls, and event notifications? There's something that already comes with your GNU/Linux base system: D-Bus.
I get it, D-Bus does not have good marketing and doesn't look “enterprisey” enough, but for some reason it has worse reputation than it should, supports many rich IPC/RPC patterns, and it's definitely faster than one may think. Do you need extra speed? Pass a file descriptor to a buffer over the bus, let the other process memory-map it.
Does D-Bus sound too punk for you and your boss doesn't want anything to do with FLOSS neckbeards? Well, there's gRPC: “if it's good enough for Google, surely is for us”. Also: Apache Thrift.
Do you need something tiny for a hard embedded system? Well, there's eRPC (Embedded RPC).
Do you want something a bit more exotic, kind of small, which plays extremely well with C, and somewhat cute? There's 9P!
Will you mostly share around big chunks of memory which must be mapped around in different processes in the same machine and have some degree of coordination and resource management? Use Wayland by writing your own extension protocols on top.
Fun fact: Wayland is not a graphics system, it's a protocol designed to pass and share “resources” around. Usually memory buffers containing pixel data, but the contents could be anything. The “server” (compositor) does not even need to talk to the GPU!
Okay, I know what some will say you: some may not like GLib or D-Bus, or maybe can't use them because $REASONS, and/or maybe you want something smaller with less dependencies…
Did you know that OpenWRT has a small message bus which has been seriously battle tested? Enter ubus: https://openwrt.org/docs/techref/ubus
Server run by the main developers of the project It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!