BETA VERSION LAUNCH (with a big discount, of course 😉!)

Elixir Patterns book & Livebooks (beta)

Learn recipes and patterns specific to Elixir/OTP and leverage the power of the BEAM

​

​

You already know the basics of Elixir. Maybe you have even shipped something to production. That's awesome! But how can you go one step further in your Elixir developer journey?
​
​
This book will help you to become a better Elixir developer by teaching you how to leverage the power of the BEAM runtime with recipes and patterns specific to Elixir/OTP.


About the book

The idea of having a "go-to" toolbox of patterns that you can leverage is an enticing one. That's what design patterns are about. But, design patterns are usually abstract and do not leverage unique properties of your specific run-time or language. That's how this book is different.

This book aims to surface the powerful and unique characteristics of the Erlang virtual machine (or BEAM for short) and show you how you can go about solving everyday problems in a simple yet scalable way.

Not only will you learn how to better leverage the tools that are at your disposal courtesy of Erlang and the BEAM, but you will also learn how to better utilize Functional Programming in order to achieve your goals in a clear and concise way. You'll start off by learning about some of the Erlang standard library utilities that are available to you right out of the box, and then you'll learn how to put those to use in your stateful GenServer powered applications.


What you'll learn in this book

Here's the book's table of contents:

  1. The Erlang Standard Library Part 1
    1. What are immutable data structures
    2. Using Queues in Erlang
    3. The many Set implementations in Erlang
    4. Arrays...in Erlang?
    5. Using the Erlang module for everyday tasks
  2. The Erlang Standard Library Part 2
    1. Directed graphs with the Digraph module
    2. Fast Incrementers with Atomics and Counters
    3. Blazing fast data Reads with Persistent Term
    4. Using ETS and DETS for general purpose data storage
    5. Keeping things secret with the Crypto module
  3. The Elixir Standard Library
    1. Cleansing, massaging and summarizing data with the Enum module
    2. Processing data with an unknown length using the Stream module
  4. Agents, Tasks and GenServers
    1. Encapsulating state within a process using the Agent module
    2. Process introspection using the Process and :sys modules
    3. Easy concurrency orchestration using the Task module
    4. GenServer deep dive
    5. Building a Cron Job Genserver
    6. Testing named GenServers
  5. Supervisors and GenServers Orchestration
    1. What is a Supervisor?
    2. Elixir and OTP Building Blocks
    3. The lifecycle of Supervisors and Processes
    4. Data buffering Supervision tree
    5. Scaling Up with Partition Supervisor
  6. Supervisor Initialization Patterns
    1. When can I use initialization processes?
    2. Running asynchronous initialization jobs
    3. Running synchronous initialization jobs
    4. Conditionally starting GenServers via Config
  7. Advanced GenServer Recipes
    1. Rate limiting
    2. Work delegator with retries
    3. Fixed size worker pool
    4. Actor model design
    5. Actor Model with State Machines
  8. Polymorphism and the Adapter Pattern
    1. Polymorphism using protocols
    2. Compile time adapter pattern
    3. Runtime adapter pattern
    4. What is an Erlang release?
    5. Why use Erlang releases?
    6. Leveraging the runtime.exs configuration file

What will you get inside this beta version?

Before the book is fully launched, we're offering a beta version.

Because it's beta, you'll get a big 38% discount! Instead of paying the full after launch $79 price , you'll pay the beta $49 price.

The beta version contains all the finished chapters plus its accompanying Livebooks. As of this moment, that's chapter, 1, 2, 3, 4, 5 and 6 (that's 209 pages in total so far), and their 16 accompanying Livebook notebooks.

Every time we finish a new chapter, you'll receive an email with a link to download the newest version.


What people are saying about our book

​
​
​

About Alex Koutmos

​

Alexander Koutmos has been writing software professionally for over a decade and started working primarily with Elixir back in 2016. He currently maintains a few Elixir libraries on Hex, is a host on the BEAM Radio podcast, and wrote a book about building a weather station with Nerves and Elixir.

About Hugo Baraúna

​

Hugo Baraúna is the maintainer of Elixir Radar, one of the most popular newsletters and job boards for Elixir developers. Before that, he was one of the co-founders of Plataformatec, the company where the Elixir language was created.

Not sure if you want to buy the book? Download a FREE sample!

Download the first two chapters and their accompanying Livebooks for free.

    We respect your privacy. Unsubscribe at any time.

    ​