What Lies Beyond a Microservice Architecture?

Danilo P. De Luca
2 min readOct 26, 2023

In recent years, Microservices have gained popularity in technology architectures due to their potential benefits, such as scalability, flexibility, and the ability to break down complex applications into smaller, more manageable services. However, as all software developers know, a choice might have downsides, and it’s not different with Microservice Architecture. As it happens to Monolotich Architecture, after a while it starts to be hard to maintain, and some “bad smells” start to spike, how about Microservice Architecture, does the same happen to it? if so, what lies beyond it?

In the 3 following articles, you will learn some strategies to give me one step forward in architecture and help it to grow in a more sustainable and healthy approach.

Part 1 — Software is Alive!

It explores the concept of “bad smells” in software development and the idea that software is a living organism, constantly changing and adapting. It draws parallels between a baby’s growth and software features and introduces the concept of using a Big-O Complexity Chart to analyze architecture. It concludes by hinting at how this concept can help measure architectural complexity and lead to architectural improvements.

Part 2 — Architectural Bad Smells

Explores Monolithic and Microservices architectures, focusing on common issues that arise in both. It introduces the concept of a Big-O Complexity Chart to analyze architectural complexity and decision-making. It emphasizes the need for architectural change and discusses various approaches to address architecture-related challenges.

Part 3 — The Change

It discusses what comes after adopting a Microservice Architecture and delves into the concept of Distributed Platforms. It emphasizes the need for architecture to be open to change and adaptable. It highlights key takeaways for implementing Distributed Platforms, such as defining boundaries, promoting “public” communication over “private” communication, and building a community within each platform.

In conclusion, if your team begins to question, ‘Is this the right architecture?’ follow a similar approach to refactoring a codebase: identify and understand the architectural ‘bad smells,’ employ metrics to assess their impact, and, if feasible, measure the complexity of your architecture.

--

--

Danilo P. De Luca

One craftsman in the mass of software development. Programming and architecting as a craft.