Book Club - Concurrent Data Processing in Elixir

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…).

5/5

6 Likes