New Book Review: "Microservices AntiPatterns and Pitfalls"
New book review for Microservices AntiPatterns and Pitfalls, by Mark Richards, O'Reilly, 2016, reposted here:
As explained in the preface, the intention of the author is to introduce several of the more common antipatterns and pitfalls that emerge when using microservices. The goal here is to help readers avoid costly mistakes by helping in the detection of when antipatterns or pitfalls take place, as well as the understanding of techniques and practices for preventing these occurrences. As pointed out by Richards in the outset, the intention here is to discuss the more common antipatterns and pitfalls rather than attempt to cover all of them in a report of roughly 55-pages.
The author covers four antipatterns and six pitfalls: the data-driven migration antipattern, the timeout antipattern, the "I was taught to share" antipattern, the reach-in reporting antipattern, the grains of sand pitfall, the developer without a cause pitfall, the jump on the bandwagon pitfall, the static contract pitfall, the are we there yet pitfall, and the give it a rest pitfall. The majority of these presentations are able to make a point in roughly 5 to 6 pages each, and much of the content is consumed by diagrams which adds considerably to the discussion.
In my view, the chapters on all four microservices antipatterns will provide value to most architects and developers, as will the first two chapters on microservices pitfalls, but the last three chapters can likely be safely skipped due to the incomplete discussion of the static contract pitfall and the relatively short discussions of the are we there yet and give it a rest pitfalls. Unfortunately, the author just constrains the static contract pitfall to two types of versioning (header and schema) without even mentioning options such as URI versioning, and the last two pitfalls are given only cursory consideration.
The data-driven migration antipattern is likely one of the most important discussions in this text, especially for architects and developers lacking significant database experience, or for those who want to understand some of the data implications that should be considered as part of a migration to microservices. Not only are the diagrams especially well done, Richards also quotes a fellow O'Reilly author who once told him that "data is a corporate asset, not an application asset". Well said.