just lean on the shoulders of giants who have thought all these points out before, and use Erlang (or Elixir). That includes back pressure.
http://elixir-lang.org/blog/2016/07/14/announcing-genstage/?...
http://elixir-lang.org/blog/2016/07/14/announcing-genstage/?...
Erlang's distribution story is great when you're on a single machine; pretty good if you're on a very high reliability, high bandwidth LAN; and not great if you're going across any network not under your direct control (e.g. AWS, the public internet).