# README
MemDB Datastore Implementation
The memdb
datastore implementation is based on Hashicorp's go-memdb library.
Its implementation most closely mimics that of spanner
, or crdb
, where there is a single immutable datastore that supports querying at any point in time.
The memdb
datastore is used for validating and rapidly iterating on concepts from consumers of other datastores.
It is 100% compliant with the datastore acceptance test suite and it should be possible to use it in place of any other datastore for development purposes.
Differences between the memdb
datastore and other implementations that manifest themselves as differences visible to the caller should be reported as bugs.
The memdb datastore can NOT be used in a production setting!
Implementation Caveats
No Garbage Collection
This implementation of the datastore has no garbage collection, meaning that memory usage will grow monotonically with mutations.
No Durable Storage
The memdb
datastore, as its name implies, stores information entirely in memory, and therefore will lose all data when the host process terminates.
Cannot be used for multi-node dispatch
If you attempt to run SpiceDB with multi-node dispatch enabled using the memory datastore, each independent node will get a separate copy of the datastore, and you will end up very confused.