Comment
Comment by ananthakumaran
I don't buy any argument that claims one is better than the other. Most of the projects start as monolith, but as time goes on, the project turns into a big ball of mud. There may be a few exceptions, projects that had strong tech leads to enforce boundaries. Have you run into projects where the test suite takes hours to run? So, at some point people decide to enforce the boundaries at the service level, by splitting the monolith to services. Maybe in the future communication between services will become a bottleneck. This might be a good trade off from some perspective. You reduce the blast radius of bad decisions from engineers and make it easier to rewrite services that were done poorly.