10 ms·
Backing Services section is over promising. Changing databases isn't a simple configuration change. Every database doesn't speak the same SQL. It doesn't hav
by Dowwie 7y ago
Backing Services section is over promising. Changing databases isn't a simple configuration change. Every database doesn't speak the same SQL. It doesn't have the same optimizations nor configuration. Also, your organization probably won't be making that change-- ever. Even if you could swap, you very likely won't.
This is similar to the claim that by using an ORM, you can easily change databases except that the ORM actually can achieve it because it abstracts away the differences. Yet, very rarely does this valuable feature get used.
- adrianN 7y agoMany organizations are in fact switching databases. It's usually a fairly complicated process, but for a surprising number of companies it makes sense to, e.g. move away from on-prem Oracle to a cloud DB.
- hunterloftis 7y agoThe backing services factor doesn't mean that you should expect to be able to hot-swap database types. Rather, it means you should be able to "dependency inject" a compatible database into your app. Say your app is designed to speak Postgres - that Postgres db should be able to run locally, or on a managed cloud service, and the app shouldn't know or care which. You should be able to switch between such services without any code changes. In practice, this sometimes does mean that multiple database implementations satisfy the interface expected by your app, and you can in fact hot-swap underlying stores. But the spirit of the factor is that the app should have its dependencies ("backing services") provided, rather than hard-coded.
- Dowwie 7y agoAh, that makes sense. Thanks for clarifying