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:

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:

  1. Make sure you know which category you are talking about;
  2. Insist on exaustive definitions of key terms (such as module);
  3. Be sure to refer to reputable sources.
Figure 1: Print of the destruction in the Church of Our Lady in Antwerp, the “signature event” of the Beeldenstorm, 20 August 1566, by Frans Hogenberg

Figure 1: Print of the destruction in the Church of Our Lady in Antwerp, the “signature event” of the Beeldenstorm, 20 August 1566, by Frans Hogenberg

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.

  1. Including a claim of cost reductions of over 90%! ↩︎


Links to this note