Rizwan Mian, PhD ,
Cloud Data Architect at CIBC
Have you ever wondered what do the different architectures represent and how?
Some example architectures: Enterprise, Solution, System, Software, Application, Infrastructure, Data, Cloud, Security, Network, Reference, Lambda, Kappa etc.
They seem to be operating at different levels of organization and representing different concepts e.g. Enterprise vs. Kappa. Let's seek a definition. Consider the IEEE Standard 1471 attempt on Software Architecture: "The fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution."
Too abstract in my opinion. In practise, I see the entire ecosystem is captured (or at least attempted) in a diagram. This diagram is typically known as an architecture, perhaps to give it weight or "force" its authority. It's often cluttered with arrows and boxes, and augmented with poorly inter-connected snippets of text.
Suppose we accept the architecture as a "big-picture" diagram and nothing more. Then, I guess we can have diagrams for anything. Not a convincing use of the word architecture though.
Suppose we don't, then the diagram alone is not enough in most cases. A picture paints a thousand words, and a thousand tangents. Often the latter is never said, or dare I say, realized. For example, what do arrows mean in an architecture? Are they ordered? Do they mean control flow, data flow, state transitions etc? Why are there different types of arrows? Do their width mean anything? You get the idea. Arguably, both diagram and text go in tandem to explain a concept as we see in the research papers. This text is coherent writing that strings different parts together.
I also argue there is no need for the crowded diagrams. Instead, a figure best serves a pointed message; an example is shown in the title figure. This may mean we have a global view which then gets broken down into constituent parts, where each components gets explained separately. One such work is by Borthakur on HDFS Architecture Guide.