Designing for Scalability with Erlang/OTP: Implement Robust, Fault-Tolerant Systems product image

Designing for Scalability with Erlang/OTP: Implement Robust, Fault-Tolerant Systems

(5/5)
Review by Joshua Morris on
View on Amazon

Review

Designing for Scalability with Erlang/OTP is the book that changed how I think about fault tolerance. I don't write Erlang, but the mental models in this book—supervision trees, let it crash, process isolation—apply to any system that needs to be resilient. The chapter on supervision trees showed me why our microservices kept cascading failures: we weren't isolating failures properly, and one service going down took everything with it. The section on hot code swapping gave me ideas for zero-downtime deployments in other languages, and the chapter on distributed systems helped me understand why some architectures are more resilient than others. The book is technical—you'll need to understand concurrency and distributed systems—but the concepts are explained clearly. My only critique is that some of the Erlang-specific details won't apply if you're not using the language, but the principles are worth it. I've recommended it to developers working on distributed systems, and they've all said it helped them think about fault tolerance differently. Essential reading for anyone building systems that need to stay up.

✓ Pros

  • Mental models for fault tolerance that apply beyond Erlang
  • Clear explanation of supervision trees and let-it-crash philosophy
  • Principles help design resilient systems in any language
  • Excellent chapter on distributed systems and failure isolation

✗ Cons

  • Erlang-specific details won't apply if you're not using the language
  • Requires understanding of concurrency and distributed systems
  • Some concepts are easier to implement in Erlang than other languages

Specifications

Pages518
PublisherO'Reilly Media
LanguageEnglish
Isbn13978-1449320737
Publication DateMarch 25, 2016