Consuming data and processing it is a central problem in so many systems nowadays. And Elixir is just so good at doing that, and doing it concurrently! Whether you run an event-sourced architecture with applications that react to events, or you have the occasional use case of map/reducing over collections in an optimized way, Elixir has your back. The current ecosystem is full of fantastic tools to help with these problems: GenStage, Broadway, Flow.
In this training, I’ll teach you how to use these tools and how to design applications that leverage their power.
You’ll be familiar with techniques and strategies to take the most advantage of tools such as GenStage, Broadway, and Flow. You’ll also see plenty of examples, such as:
- Concurrent batch processing of jobs (Broadway)
- Reacting to async events in your system, such as AWS S3 uploads (through SNS notifications) (Broadway)
- Event-source systems (Broadway)
- Rate-limiting outgoing requests, whatever “request” means (GenStage)
- Downloading a lot of files in parallel and processing their contents (map/reduce with Flow)
Skill include being familiar with Elixir’s syntax and concurrency model (processes and OTP). Software is limited to Elixir.