DEV Community

loading...

Microservices is not the best way to draw boundaries and achieve modularity in a system

Alexsandro Souza
Team lead | Agile coach | Speaker | Active blogger | Opensource contributor | DevOps enthusiast | Computer vision practitioner
Updated on ・1 min read
I am always posting provoking post on my Linkedin, and I have decided to replicate those here. Let's socialize!

I have two relevant opensource projects related to microservices(Java microservices and Service mesh) with thousands of access, and I have been working with this architecture for a few years; however, I don't recommend microservices architecture for most cases.

I think its complexity overtakes its benefits.
I believe there are better ways to draw boundaries and achieve modularity in a system.

More here


Free Advanced Java Course

I am the author of the Advanced Java for adults course. This course contains advanced and not conventional lessons. In this course, you will learn to think differently from those who have a limited view of software development. I will provoke you to reflect on decisions that you take in your day to day job, which might not be the best ones. This course is for middle to senior developers and we will not teach Java language features but how to lead complex Java projects.

This course's lectures are based on a Trading system, an opensource project hosted on my Github.

Discussion (4)

Collapse
pjotre86 profile image
pjotre86

What about scalability?

Collapse
apssouza22 profile image
Alexsandro Souza Author

When you need to scale part of the monolith then you make your module a microservice. To make your module a microservice, you will just add a gRPC layer on top of it

Collapse
pjotre86 profile image
pjotre86

Agree. Sorry, I was under the impression that you're opposing microservices. It's not really clear to me what you're suggesting in your post.

Thread Thread
apssouza22 profile image
Alexsandro Souza Author

When you need to scale a piece of your system, extract it from the monolith into a separated service. You do it when necessary.
My point is that you don't need to get rid of your monolith because you need to scale a small part of it.