Earlier quoted context omitted.
Is there any example of this ever working in practice in the history of computing? As in, we built a large, stable service with datastore X, but we were forward looking enough to make sure that we only "developed to an interface" and we successfully swapped to datastore Y without significant code changes?
The project I'm currently working uses AWS DynamoDB as primary DB. Since it's proprietary, we ensure the AWS-specific APIs are contained in small and specific part of the codebase. For instance, to create a "User" we need the PutItem API from DynamoDB [1]. Similarly, to retrieve a "User", there's the GetItem API [2]. Instead of making references to these APIs all over our codebase, we have a single `db-interface` mod…
Re: Redis Stack
#71I understand the concept, I'm just asking if anyone has ever actually done it. DynamoDB has various guarantees, features, edge cases etc that you have to be aware of in your app code, and any DB that you want to switch to will have a different set of guarantees, features, edge cases etc that you will have to support throughout your app. So it's more than just an interface.