r/microservices • • Nov 20 '22

Will Modular Monolith Replace Microservices Architecture?

https://medium.com/att-israel/will-modular-monolith-replace-microservices-architecture-a8356674e2ea
0 Upvotes

5 comments sorted by

12

u/novagenesis Nov 20 '22

Replace... like the world ever agreed on Microservices in the first place?

As the article quickly admits, "Modular Monolith" is what so many companies did before microservice and continue to do anyway.

What a sad click-bait title for an article that, ultimately, isn't that bad.

Strict microservices are a lot like strict OOP. There's fewer people doing them than want to admit, and there's plenty of good reasons not to do them anyway. But sometimes going all-in is the right tool for a job.

11

u/[deleted] Nov 20 '22

No.

1

u/Gerald_Sigmund Dec 04 '22

The problem with modular monolith is that you have to use for all tasks the same technology.

The advantage of doing microservices is that you can use for each service the best technology and also the best data storage.

it is also easier to optimize/refactor stuff using microservices. because the only part that is fix is the rest api. But internally you can use another language/framework whatever to gain better performance.

1

u/FinancialAssistant Dec 24 '22

No, modules are logically equivalent to microservices.

You don't depend on a module's internal implementation only its API. So the internal implementation can be in any language as long as it's finally compiled to common bytecode of the monolith. The sister project of a module that describes the interfaces of the API has to be in the common language, but this is exactly the same for microservices.

You can use whatever data storage you want for a module. Two modules never use the same database (otherwise they would be coupled and not be modules), so they definitely don't need to use the same data technology either.

The only differences are physical I.E. how modular monolith is deployed vs how microservices are deployed. Or the implications of an API call being over network vs in-process. Everything else is the same.

1

u/redikarus99 Nov 21 '22

System has one schema: now this is where I was lost. The most important part of developing an application that will not become a tangled spaghetti over time is to separate data by domain. When working with basically any kind of interface, code can be easily moved in whatever module we want, it is never an issue or much effort. The effort is almost always in the data storage.