Squeeze first
Bookmarked Squeeze the hell out of the system you have – Dan Slimmon.
But don’t just consider the implementation cost. The real cost of increased complexity – often the much larger cost – is attention.
If you decide to shard across databases, then not only must you pay the money-, time-, and opportunity cost of building out the new architecture: you must also take the new complexity into account in every subsequent technical decision. Want to shard writes? Fine, but this complicates every future decision about backups, monitoring, migrations, the ORM, and network topology (just to name a few). And don’t get me started on micro-services.
Just think about how massive these costs are. How much feature delivery will have to be delayed or foregone to support the additional architectural complexity?
Applicable as a principle for life in general as much as it is for tech and software.