Hi Tom, thanks for your comment, I was waiting for it and I know (and actually glad) that mainstream opinion is opposite. It forces people not to make rude mistakes. Independency and isolation are definitely right things to do, but there is also a premature optimization, which can easily bring even more losses for business, making developers to tilt at mildwinds.
So to make it clear, I definitely don’t suggest to use shared DB always. I suggest to use it if:
- 95% you’ll be using the same DB engine for your MSs
- Your MSs are part of the same business logic
- Your MS teams either shared or communicate efficiently.
In this case if you choose isolated DBs, you’re still going to use the same DB behind the scene, just making proxies for it out of your MSs. In all other cases (I would say when it comes closer to SOA) and your services are really different and have their specific goals and behaviours, storages will be naturally separated.