Book Club - Concurrent Data Processing in Elixir

Concurrent Data Processing in Elixir is now content complete and I finally found the time I’ve been looking for to dedicate behind reading the latest Elixir books. The Programming Crystal book club proved to be as effective as it was fun; I’d like to do the same for this one.

Over the next few days I shall be reading the book and sharing my experience with everyone, along with any “code as side effects”. The format will certainly be different from the Crystal one, as I already am experienced with Elixir, but will surely have much more codes produced.

I will start reading it from tomorrow and will be thrilled to have any co-readers to talk with!


Corresponding tweet for this thread:

Share link for this tweet.

1 Like

Looking forward to this one as well Mafinar - I definitely want to read it at some point myself!

I’m sure @svilen will be interested in hearing your thoughts too :nerd_face:


Going to read the first chapter today. I spent all my i-learn-as-i-please coins behind OCaml and Crystal in the past few days.

Did a quick scanning though. I wholeheartedly agree with the table of content. You start with Task, then slowly expand those capabilities with more capable boxes. I never got to work with (or even look into) Broadway so there’s that.

Task is one of my favorite things in Elixir. I look forward to read that chapter later today!


I just bought it, but it might take a me a little while to start. I have to finish the current project I’m working on first.


Chapter 1 - Easy Concurrency with the Task Module

Off to a great start. This chapter tells us ways to use Task. I loved how the chapter is organized, especially in terms of assumption of reader experience. As it starts, the author nicely explains the things like, how to start a REPL, create a supervised mix project etc, then after a great explanation of Synchronous vs Asynchronous tasks (I never get tired of those, they always enlighten me somehow) and Process, we get a very nice explanation and use cases for Task. And it ends with Supervisors! Everything you need to know should you attempt to learn this useful module of Elixir!

Two of my favourite functions: yield and async_stream were there! The explanation of linking and supervision too was pretty satisfactory. At the end, there was a section was dedicated to the “Let it Crash” philosophy, and thank you- WE DO HANDLE ERRORS! it’s just that our defence mechanism is different.

Most examples of this chapter was designed around solving a real-world (ish) problem, not just random “Hello World”-s and “Good bye Reality”-s, so each example and improvements had context and story, this is something I really like about code examples, you get to relate and often feel like, “Okay, so what if I did this…” and then see that getting answered in the next example. I wish the results were depicted via test cases but I also understand this is a personal preference of mine and is not shared by many people, so that’s not even a nit.

All in all, a great chapter that makes me wish I had it handy when I was learning about Tasks, Agents etc (Agent’s not covered in this chapter but I learned and used them together so…).



I will be reviewing the next two chapters during the weekend but I did skip chapter 2 (for now) and moved to chapter 3 and I must say, this book explained GenStage wonderfully. This book is great. Larger discussion and queries will follow soon but just wanted to post in praise of the awesome explanation style of @svilen


Good highlights @mafinar and I will be writing my highlights to the first chapter and share here after…