This articles makes the assumption that features are easier to develop if subsystems are broken up into separate components, with separate data sources and deployments.<p>But experience shows that this is only sometimes the case. Monolithic applications with a big SQL engine as the backend have the advantage that you can do joins very easily. If the data is split into three microservices, you spend much more time thinking about how to do the these cross-service joins more efficiently, narrowing down the amount of data you have to fetch from the other services and so on.<p>People argue that cross-service joins should not be necessary, but that&#x27;s also easier said than achieved; in reality, they tend to show up, no matter how carefully you partition the services.