Ask HN: Use Cases of Elixir's Agent vs. Process vs. Task vs. GenServer?
But here is the thing: it seems to have so many concurrency abstractions (via OTP) that I am often puzzled about which one I should use in a given situation.
Should I use a GenServer? An Agent? A supervised Task? A Process? Or just spawn/1 a lambda? Some of these abstractions seem so close to one another.
I know I would probably find out if I read whole books on Elixir, but I'm surprised I couldn't find something that summarized all this simply.
Any resource you found useful?
Edit: I know that an Agent is built on top of GenServer, but it doesn't tell me when to use which.