I’m nearly overwhelmed with books these days. I just finished reading Release It!, and I’ll share a few thoughts.
The author clearly has a great deal of Java experience, so his examples seem to come from that realm. And he focuses on web applications. But the advice is valid for anyone writing applications that support a ton of load (I think we all hope our applications see a ton of load, one day). And as HTTP based services become a staple of all enterprise-y development, I think the advice is still applicable. Circuit breakers, bulkheads and many of his other recommendations can be applied to any application space, whether you build you services in Rails, Java, Perl, whatever…
Since the book is web centric it assumes a server back end with a web browser UI. For those of us who build our own front ends (instead of relying on browsers) have more options for choosing how we handle HTTP protocols and handshaking; we can handle HTTP error codes correctly on both ends of the call (when we control both ends). Obviously, that doesn’t absolve us of the responsibility of securing and stabilizing our apps the same as any server based application. And we still have to deal integration points, so most of the book’s contents are valid for our particular situation.
Much of what the book talks about is preparing for the inevitable failure so that you can get your systems running again and prevent another occurrence of that particular failure. In fact, the anti-pattern chapters are longer then pattern chapters. Some of his patterns I’ve learned through experience. That’s definitely the hard way. I’m hoping that I can apply some of what I’ve learned here before the next disaster ensues.
I recommend the book for any software shop that builds web application software or has to integrate with third party services over a network. In fact, buy two copies and sharing with your engineering services team.