Rod Hilton reviewed SOA patterns by Arnon Rotem-Gal-Oz
Review of 'SOA patterns' on 'GoodReads'
2 stars
This is a weird book. When you're reading it, it almost seems like it's some kind of ancient tech book, like something from the 80's, where people were just figuring out how to build software and patterns were first starting to emerge. Kind of like when you read The Mythical Man Month or The Structure and Interpretation of Computer Programs, it's talking about things you recognize but using terminology that has since been replaced, so it serves as something of a strange time capsule from when it was written.
Except, this book came out in 2012. 4 measly years ago. When you read it, it constantly refers to things that you're likely to have seen if you've done any service-oriented development at all, but it takes you a minute to realize the book is discussing something you already know because it's using terminology you don't. For example, the second pattern, …
This is a weird book. When you're reading it, it almost seems like it's some kind of ancient tech book, like something from the 80's, where people were just figuring out how to build software and patterns were first starting to emerge. Kind of like when you read The Mythical Man Month or The Structure and Interpretation of Computer Programs, it's talking about things you recognize but using terminology that has since been replaced, so it serves as something of a strange time capsule from when it was written.
Except, this book came out in 2012. 4 measly years ago. When you read it, it constantly refers to things that you're likely to have seen if you've done any service-oriented development at all, but it takes you a minute to realize the book is discussing something you already know because it's using terminology you don't. For example, the second pattern, "Active Service", once you finally get through the section on it you realize it's just talking about a service frontend that calls multiple other services. That's an "Active Service"? I've built dozens of these things and I've never heard it called that. You go through the entire section on the "Decoupled Invocation Pattern" and it all seems familiar and then suddenly you're like "wait, are you just talking about asynchronous services?" You go through the "Service Instance" section and get to the end and ask "wait is this just a Cluster?", you get through Virtual Endpoint and ask "wait you mean a Load Balancer? Why the hell are you giving everything such weird names?"
It's kind of nice to have everything gathered together in a single spot, but I don't think there's much to learn here if you have any experience with SOA at all. A lot of "patterns" books tend to contain things you've sort of developed or done on your own, but they usually have some eureka moments as well where you see something new. In SOA Patterns's case though, it all seemed pretty introductory, like I don't think you could get through a "Introducing SOA" type book without covering 100% of the material in this book, so all this book really did was add goofy names to a lot of it that nobody else uses. Which, given that the entire point of patterns is to give standard terminology to developers to help communicate, I think SOA Patterns actually subtracts more than it adds.
The organization of the book leaves much to be desired as well. Even with the sections clearly labeling "problem" and "solution", I still often struggled to even figure out what some sections were trying to show me in terms of problems that specific patterns solve. There's even an entire chapter for "Message Exchange Patterns" which actually only contains a single pattern, Saga.
The weirdest section of the book by far was 10.1, "REST vs SOA", yes you read that title right. Versus. I had been suspecting while reading the book that the author's notion of SOA was limited to SOAP and XML and this section confirmed it, seeing REST not as a particular way to DO SOA, but as a competitor to it somehow. Again, I'm not saying that this wasn't, at some point, a common viewpoint, but it once again makes the book seem like something released a decade ago, not a mere 4 years.
Overall the book just seems hopelessly out of touch or out of date at this point. It discusses the Service Bus pattern, something that most shops are trying to move away from for the most part. An entire book on service-oriented development and there's not a single mention of the latest-and-greatest in that space, "microservices". The closest thing to a mention was "nanoservices" which you can find in the "antipatterns" section of the book.
Skip it, if you're even familiar enough with SOA to be interested in a patterns book, you know everything inside. And what you don't know, the book doesn't cover at all because it reads like a book that's a decade out of date.