Paul Schoenfelder



Check price

The Alchemist's Guide To OTP

A field manual for Elixir programmers

The Alchemist’s Guide to OTP is intended for Elixir programmers who are already somewhat comfortable with the language, and have a basic grasp of OTP concepts (i.e. applications, supervisors, etc.); this provides us room for looking at these concepts in detail, going all the way down to how they work internally. The book also covers a number of topics which are tangential to OTP, but which are an important element in the structure and design of efficient Elixir systems.

The book uses an application, Autofactory, to keep the topics grounded in a real project. The full source code of this application is included with the book, and is intended to be extended and experimented with for putting the patterns and ideas in this book to practice. Autofactory is a simulated manufacturing facility, which receives orders via API, and simulates the entire manufacturing process in detail. This provides us a practical foundation for discussing concepts like flow control, load shedding, circuit breakers and more, with just enough complexity to illustrate the issues and their solutions.

Some of the topics covered:

  • Designing applications by examining the problem domain and how it breaks down into concepts which map well to Elixir architectural patterns
  • How to determine application boundaries
  • How to design modular applications by building against protocols/behaviours, abstracting implementations from interfaces, and injecting implementations via configuration rather than directly calling them
  • Investigating OTP primitives in detail (applications, supervisors, special processes, etc.), including common pitfalls and how to avoid them
  • Effective use of finite state machines (via GenStateMachine)
  • Effective use of macros for reducing boilerplate without going “macro crazy”
  • Flow control, load shedding, circuit breakers
  • A variety of architectural patterns both large and small (“process as message”, error kernels, stacking theory, etc.)
  • Everything about releases: configuration, migrations, hot upgrades, appups
  • Operations: troubleshooting in production, tracing and debugging tools, metrics, alarms
  • Writing efficient Elixir programs


No reviews for The Alchemist's Guide To OTP.