I got interested in Elixir a couple of years ago after hearing people share their succcess stories with joy. I dove into a couple of books.

Both were great reads and gave a lot of insights on the language.

Designing Elixir Systems with OTP is another solid Elixir book. It’s a bit different than the others. While they focus on the language and frameworks, this book focuses on using the features of Elixir to design systems. It spends a lot of time looking at good system design.

Good system design focuses on layers and boundaries. The design process starts with the core—the domain—and works it way out to the shell, integrating through well-defined boundaries. This leads to software that is easier to understand, maintain, and evolve over time.

This book shows Elixir is a great fit for good system design. Not only is Elixir a fun language with robust frameworks like Phoenix, it takes advantage of the success of Erlang to build fault-tolerant systems. It makes writing layered code feel natural.