Description
Most of the interfaces in this repo have a bucket
argument that is passed to most functions. This seemed a little odd to me as most keyvalue clients I've used don't require this. They generally connect to a specific bucket when opening their connection and then all operations are against that bucket. Manually passing the bucket name on every call feels a little clunky, so before we finalize the interface, I wanted to see if we could get away without using it.
My guess at the original reason for having it was to support connecting to multiple DBs/buckets, which is totally valid as you don't want to have vendor specific connection strings inside of code (kinda defeats the purpose of a generic interface). If this is the case, there are two questions that fall out of this:
- How common is the use case of connecting to two entirely different DBs/buckets? Is that something we should even support in a "generic" interface like this one?
- Is there any way we could still get this functionality without overly complicating the interface?
Curious on what people think here