For the first version, we should endeavor to keep things as simple as possible.
back with go-datastore, unless it's easier to just use something else (i.e. go-storethehash)
just write a key value mapping of CID + dag-cbor serialized selector (maybe dag-json to satisfy the go-datastore interface?) to dag-cbor encoded metadata list
What
Once https://github.com/ipfs/go-graphsync/issues/375 is implemented, and once feedback is collected on https://github.com/ipld/go-ipld-prime/issues/395, we can write an initial cache.
Scope
For the first version, we should endeavor to keep things as simple as possible.