Hacker News new | ask | show | jobs
by loughnane 636 days ago
> Almost all the successful microservice stories have started with a monolith that got too big and was broken up

The less certain you are about a system's requirements the more you should prefer a monolith.

A well-understood system (eg an internal combustion engine) has well-defined lines and so it _can_ make sense to put barriers in between components so that they can be tweaked/replaced/fixed without affecting the rest of the system. This gives you worthwhile, but modest overall performance improvements.

But if you draw the lines wrong you end up with inefficiencies that outweigh any benefit modularity could bring.

Start with a monolith and break it up as the system's ideal form reveals itself.