Architectural Metapatterns book is ready
So, I wrote a book on software architecture. It’s free (CC BY license) and available for download as a PDF (looks the best), ePub or docx file. Still, I don’t know how to promote it.
What it is about
The book establishes a high-level view on software and system architecture. That is possible through arranging systems according to their structure — as it is the structure that defines (or at least correlates with) the function. Thus, all the architectural patterns that describe system composition (not something like TDD or Dead Letter Channel) which I knew of were analyzed and arranged into 19 classes of similar structure and properties.
Each class, called metapattern, gets a dedicated chapter with known names for the pattern (as books often reinvent patterns), its pros and cons, performance and available optimizations, dependencies of the components and relations to other classes of patterns. It also lists variations and best known examples, each featuring a structural diagram and a paragraph or two of description. And each chapter has a section on evolutions — architectural changes that resolve various forces, and there is an appendix where many of the evolutions are examined in detail.
The book also contains a few chapters that discuss such basic principles as complexity, modularity, distribution, choreography and orchestration and a few more analyzing various aspects of all the patterns — thanks to the book’s classification which lets us easily iterate over the architectural patterns.
There are literally hundreds of diagrams scattered throughout the text to let you skim through the book and read only the parts related to your experience. And the book is technology-agnostic — no code, no names of frameworks, only architectural principles, common sense and references to well-known literature.
The difference from the articles
Every chapter of the book has been published as a separate article here on Medium, thus you can read them online if you are reluctant to download a 50MB file. However, the PDF is much better formatted than anything Medium can offer. Moreover, the book got cross-links between its chapters to let you quickly check what that unknown pattern referenced here is about. There is also an index of patterns and architectures at the end. And the color scheme for the diagrams was improved a little — clients are now filled with mid-brown (politely named “oat”) to easily discern them from generic/library components. I almost forgot: the long evolutions sections of the Medium articles now moved to the end of the book, thus the metapatterns are packed together with about 7 min of reading (by the Medium estimate, which likely does not account for the diagrams) per chapter.
Promotion
Again, I don’t know how to promote the book. Thus, if you like it, please share it with your colleagues to improve the chances for it to get noticed by a major publisher. I don’t actually know if they even consider printing a book under a free license.
Is the book useful?
I don’t know. I hope that it gives an overview of almost all the know system designs in about 300 pages, thus it probably may both serve as a primer for students and help experienced architects get a fresh view out of their domains of expertise — hopefully to get a glimpse of insight from what has been known and useful to their peers for decades.