How to avoid frustration with software architecture by Eduardo Bellani
It is becoming more common for companies to come out with stories on the downsides of distributed microservice architectures1(Kolny 2023; Ghemawat et al. 2023).
Instead of hopping in this bandwagon, as tempting as this might be, I want to suggest how could one avoid being caught in such situation in the first place.
Fundamentally, I think the problem that originated the current dissatisfaction with microservices is a double confusion:
- between the form (modules) and the matter (interacting running processes) of software and(Ainsworth 2024);
- between the the form (modules) of software and the form of software building organizations (teams, executing environments, deployment pipelines …).
Interestingly enough, such structures are the 3 categories of software architecture proposed in a standard Software Architecture book:
- Module structures
- partition systems into implementation units
- Component-and-connector (C&C) structures
- focus on the way the elements interact with each other at runtime to carry out the system’s functions.
- Allocation structures
- establish the mapping from software structures to the system’s non-software structures, such as its organization, or its development, test, and execution environments. (Bass et al. 2021)
So what?
In order to avoid confusion and unecessary costs, the next time you are discussing software architecture:
- Make sure you know which category you are talking about;
- Insist on exaustive definitions of key terms (such as
module
); - Be sure to refer to reputable sources.
References
Ainsworth, Thomas. 2024. “Form vs. Matter.” In The Stanford Encyclopedia of Philosophy, edited by Edward N. Zalta and Uri Nodelman, Fall 2024. https://plato.stanford.edu/entries/form-matter/; Metaphysics Research Lab, Stanford University.
Bass, L., P. Clements, R. Kazman, and an O’Reilly Media Company Safari. 2021. Software Architecture in Practice, 4th Edition. Sei Series in Software Engineering. Addison-Wesley Professional.
Ghemawat, Sanjay, Robert Grandl, Srdjan Petrovic, Michael Whittaker, Parveen Patel, Ivan Posva, and Amin Vahdat. 2023. “Towards Modern Development of Cloud Applications.” In Proceedings of the 19th Workshop on Hot Topics in Operating Systems, 110–17. Hotos ’23. Providence, RI, USA: Association for Computing Machinery. https://doi.org/10.1145/3593856.3595909.
Kolny, Marcin. 2023. “Scaling up the Prime Video Audio/Video Monitoring Service and Reducing Costs by 90\%.” https://www.primevideotech.com/video-streaming/scaling-up-the-prime-video-audio-video-monitoring-service-and-reducing-costs-by-90.
-
Including a claim of cost reductions of over 90%! ↩︎