Hey, I’m quite new to Elixir and trying to make good architecture with my app.
I’ve got a few questions how to don’t mess up app too much (is there any tutorial for it?):
My setup is basically:
-API for requesting some work (for instance downloading videos)
-some server taking those requests and queuing them to some pool of workers.
-interactive communication between server and workers (when I request a playlist I want to get message about every video which finishes downloading from that playlist)
- How to achieve robustness?
I thought about one server responsible for API with DynamicSupervisor having workers as childrens.
- How can I implement queue of work?
Programming Elixir 1.6>=author used hungry workers, I found GenStage, is it the same or a bit different purposed ideas?
- How can I get dynamic messaging from workers?
- How can I wrap everything into nice API, callable from Phoenix controllers (I’ll propably use Channels for dynamic communication)?