Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The answer is like often in between.

You might want to always breaker up a monolith but there is indeed little reason to do it with micro services. You could just use modules. Or better breaker it into a number of libraries with well defined interfaces, which you then compose into one monolith binary.

But there are very good reasons to split out some code into services (which might or might not be micro services, just not in the same process).

One is that it (easier) allows you to use more than one programming language. Normally you should avoid that, but there are sometimes reasons for it for example if 80% if what you need is implemented in a library available in that language.

Another one is you can have different reliability constraints for different parts of the system. (Like number of instances handling load parallel).

Another one is reuse between different systems (e.g. sharing of user management by e.g. using OpenId Connect).

Another one is that you can upgrade part of the system without stopping other parts.

....(a bunch more)

So in the end I would brake it in parts and compose that parts into a number of services but I would not bother with the whole "micro" part and other cloud marketing bs (because that's what it degraded to).



Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: