If I have a central process running on a machine, and potentially several other processes running into that same machine that need to communicate with the central process as fast as possible, how should I be doing that in 2018? gRPC? Standard inter-process communication mechanisms?

For example, if you run a MySQL server on a machine, other processes can connect via a web sockets I believe, but that doesn't seem optimal if the processes are all on the same machine.

New contributor
paizhaulski is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

put on hold as too broad by gnat, amon, Robert Harvey, David Arno, Doc Brown Nov 10 at 8:10

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • gRPC is mostly a serialization protocol on top of HTTP, not an IPC mechanism by itself! IPC is fast when you can avoid doing stuff – network protocols (even over localhost) are comparatively slow because you are stil using the network stack. Pipes, named pipes, or Unix sockets are usually the fastest stream-based IPC mechanisms b/c they require minimal kernel intervention. Shared memory can be faster, but sending messages over shared memory is very difficult. – amon Nov 9 at 17:28
  • 4
    As usual, measuring it yourself is the best way to answer questions about performance. – Robert Harvey Nov 9 at 17:32
  • The fastest way to have two processes communicate is via shared memory. But shared memory is not without its problems. So I expect you aren't really after the fastest way. – David Arno Nov 9 at 22:35

Browse other questions tagged or ask your own question.