Oh god no no no no no no.
At a previous gig folks had fallen for the siren song of Elixir tasks.
You have to supervise them and handle failure modes and timeouts.
It ends so, so badly otherwise. Don’t use them unless you really, truly don’t care about reliability (or your coworkers).
What’s the best way to set up a normal-ish Erlang supervision tree from Elixir?
The normal GenServer stuff seems to behave alright–it’s just that with tasks people often spin them off and if they die unexpectedly or hang there isn’t a good way of recovering their state or rerunning jobs.
We had an internal library we used for queuing and catching error states, stacktraces, etc.
Yeah! Is the system failure you describe documented anywhere? I’d love to circulate an analysis or put it in my notes in some fashion.