Book
Release It!, 2nd Edition
Design and Deploy Production-Ready Software
Michael T. Nygard
Summary
Names the failure modes that take production systems down and the patterns that contain them: circuit breakers, bulkheads, timeouts, and steady-state design. Nygard opens with a case study of a single exception that grounded an airline, then works outward from processes on a machine to interconnects, control planes, and deployment. The second edition includes chapters on chaos engineering and design for deployment. This is a book about what happens after the code passes its tests.
Target Readers
- Engineers on call for production systems who keep meeting the same failure modes
- Developers designing services that need to degrade rather than collapse under load
Tags
Colophon
- Publisher
- Pragmatic Bookshelf
- ISBN
- 978-1680502398
- Published
- Feb 2018
Get this book
* The link above is an advertisement via Amazon Associates.Related Books
Prerequisites
- Recommended
Microservices Patterns
With examples in Java
Chris Richardson
Reason: Once you can implement distributed systems, designing 'how they behave when they break' becomes essential. Release It! provides stability patterns like circuit breakers and bulkheads, teaching you to design systems where failures don't cascade.
- Recommended
Understanding Distributed Systems, 2nd Edition
What every developer should know about large distributed applications
Roberto Vitillo
Reason: The Resiliency part of Understanding Distributed Systems goes from common failure causes, redundancy and fault isolation to timeouts, retries, circuit breakers, load shedding and rate limiting. Release It! spends a whole book on stability patterns such as circuit breakers, bulkheads and timeouts, alongside case studies of production failures, so the patterns you met by name and purpose in the first book can be read again in the setting of real outages.
- Related
Concurrency in Go
Tools and Techniques for Developers
Katherine Cox-Buday
Reason: Once you can write concurrent code, you face 'concurrency-born' failures—timeouts, retries, resource exhaustion. Release It! provides stability patterns that assume such failures, teaching designs that let concurrent code survive in production.
- Related
Kubernetes in Action
Deploying and managing containers and cloud-native applications
Marko Lukša
Reason: Operating distributed systems on Kubernetes, you face cascading failures where one fault drags down the whole. Nygard's 'Release It!' systematizes stability patterns—circuit breakers, bulkheads—that contain failures, bringing 'keep running even when it breaks' design into K8s operation.
- Related
Practical Monitoring
Effective Strategies for the Real World
Mike Julian
Reason: After setting up failure detection with 'Practical Monitoring', advance to designing how the system itself absorbs the detected failures. The stability patterns in Nygard's 'Release It!'—circuit breakers, timeouts—become an implementation toolkit for automatically containing the failures monitoring surfaces.
Next Books
- Recommended
Observability Engineering
Achieving Production Excellence
Charity Majors, Liz Fong-Jones, George Miranda
Reason: After implementing stability patterns like circuit breakers from Nygard's 'Release It!', you must observe whether they actually work in production. 'Observability Engineering' makes the activation of those patterns and the system's internal behavior visible, making it verifiable that the 'unbreakable design' is functioning.
- Related
Dragon Quest X o Sasaeru Gijutsu (The Technology That Supports Dragon Quest X)
Behind the Scenes of a Large-Scale Online RPG
Koji Aoyama
Reason: After learning the design principles of robust systems through stability patterns, you learn from a case that practiced them in long-term operation. The continuous operation of a large-scale online game is a living lesson in how theoretical stability design is tested by real-world load and failures.
- Related
Site Reliability Engineering
How Google Runs Production Systems
Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy
Reason: The stability patterns in 'Release It!' make individual services harder to break, but how to set targets for whole-system reliability and operate it organizationally is a separate question. Google's 'Site Reliability Engineering' integrates individual fault-tolerant design into organizational reliability management through error budgets and incident-response structures.