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:
- The Erlang Standard Library Part 1
- What are Data Structures
- Using Queues in Erlang
- The Many Set Implementations in Erlang
- Arrays…in Erlang?
- Using the Erlang Module for Everyday Tasks
- The Erlang Standard Library Part 2
- Directed Graphs with the Digraph Module
- Fast Incrementers with Atomics and Counters
- Blazing Fast Data Reads with Persistent Term
- Using ETS and DETS for General Purpose Data Storage
- Keeping Things Secret with the Crypto Module
- The Elixir Standard Library
- Useful Enum Module Patterns
- Being Lazy with the Stream Module
- Massive Concurrency with the Task Module
- The Process Module
- GenServers and Supervisors
- Erlang Application Philosophy
- What is a GenServer?
- Understanding the Callbacks
- The Lifecycle of a GenServer
- What is a Supervisor
- Combining Supervisors and GenServers
- Basic GenServer Recipes
- Initializing an Application
- Message and Data Batching
- Running Cron Jobs
- Process Introspection with the Sys Module
- Advanced GenServer Recipes
- Rate Limiting
- Work Delegator
- Actor Model Design
- Testing Stateful Applications
- Application Release Packaging
- What is an Erlang Release
- Why Should you use Erlang Releases?
- Handling Application Configuration
- Behaviours and Protocols for Environment Specific Adapters
How to buy? I only see an option to download a free chapter…
I think you may have to wait until the launch. This is pre-launch.
We’re currently targeting a full book release for the Summer. We should be releasing chapter two this coming week, which will also be a free download. PDF and Livebooks included
@hugobarauna and I just published chapter 2 of Elixir Patterns! In chapter 2 we cover some of the more advanced Erlang data structures available to us with some really helpful Livebooks to show you how they all work :).
Be sure to check it out: https://elixirpatterns.dev/
@hugobarauna and I excited to announce the the Elixir Patterns book is in beta release! Part one of the book is complete and we’re currently working on wrapping up part 2. Each chapter has a couple of accompanying Livebook files to help you learn and experiment with the concepts in the chapter. Check it out @ https://elixirpatterns.dev/ and if you are interested in picking up a copy, you get an early beta price