Seems like there is less and less reason for not using Erlang for distributed coordinated compute broker tasks.<p>I have a stateless java backend servicing REST APIs.
These backends are load-balanced by nginx.<p>Now the time is approaching where I need to introduce some form of global state (that involves global caching, message passing, registering/discovery of known workers, periodic (cron-like tasks), etc).<p>I would much prefer a single tool to add to my backend stack (currently Java + postgres) to cover most of the above needs.<p>With the performance improvement + persistent_term [1] -- in current Erlang, I basically get:<p>- a light weight distributed K/V cache<p>- a ZeroMQ like on-wire messaging system (built into erlang)<p>- discovery/coordination<p>- a distributed compute grid<p>- a way to write my own routines within that compute grid, and have them exposed via Java interface to my existing backend.<p>I do not need 'fastest' possible performance or least memory consumption. I just need them to be 'reasonable', 'known' and 'controllable' (not to exceed some baseline).<p>Erlang is just looking better and better (and I prefer its syntax to Elixir, for some reason.).<p>[1] <a href="https://erlang.org/doc/man/persistent_term.html" rel="nofollow">https://erlang.org/doc/man/persistent_term.html</a>