If you need to build a scalable, fault tolerant system with requirements for high availability, discover why the Erlang/OTP platform stands out for the breadth, depth and consistency of its features. This hands-on guide demonstrates how to use the Erlang programming language and its OTP framework of reusable libraries, tools and design principles to develop complex commercial-grade systems that simply cannot fail. In the first part of the book, youíll learn how to design and implement process behaviors and supervision trees with Erlang/OTP and bundle them into standalone nodes. The second part addresses reliability, scalability and high availability in your overall system design. If youíre familiar with Erlang, this book will help you understand the design choices and trade-offs necessary to keep your system running.
Explore OTPís building the Erlang language, tools and libraries collection and its abstract principles and design rules Dive into the fundamentals of OTP reusable the Erlang process structures OTP uses for behaviors Understand how OTP behaviors support client-server structures, finite state machine patterns, event handling and runtime/code integration Write your own behaviors and special processes Use OTPís tools, techniques and architectures to handle deployment, monitoring and operations
A must have for every Erlang & Elixir dev / architect. Yes, I've put here "Elixir" on purpose - whether you like it or not, the sooner you start learning about tech internals of OTP/BEAM, the better. Fortunately, this book is really good with helping with that: * very decent descriptions of gen_fsm & gen_event (best I've seen in Erlang-related books) * very good introduction into how applications & modules are built internally * nice build system introduction
Last few chapters are completely different as they abandon OTP/Erlang internals & focus on higher-level ("architectural") aspects of scalability, availability & resilience (sometimes in quite a generic, platform-agnostic way). It doesn't mean they are bad, but definitely they are far less unique - you can find at least few books that cover this on a comparable level.
Anyway, if you're really building back-end systems using Erlang, you'll do yourself a favor by getting & reading this book.
A good reference book that teaches best practices and fundamentals required for implementing reliable, fault-tolerant systems in Erlang. The book comes with very easy to grasp prose throughout and the examples are clear and concise. Highly recommended and valuable book that I'm sure that I will be revisiting again to revise.
This book is the natural go-to after you are already pretty accustomed with Erlang basics. I have found it really comprehensive and particularily enjoyed chapters treating more advanced topics like releases , logging , debugging , VM mechanics.
This entire review has been hidden because of spoilers.
If you're looking for a quick introduction to OTP in Erlang, this is not it.
Instead, this book takes the approach of implementing solutions to problems without OTP behaviors, and then adding them in. The reasoning behind OTP becomes clear this way.
I think many of the ideas here have affected my way of thinking about systems, although I'm unsure if I'll ever use Erlang in my projects - on the other hand, Elixir and therefore OTP _is_ on my radar.
Sidenote: the chapter has a chapter on the now-deprecated gen_fsm but that doesn't take away its value.