TL;DR: I'm really happy to announce my latest open-source project called Record-Store 🚀 Please check it out on https://pierrez.github.io/record-store.
🔗What?
Record-Store is a layer running on top of FoundationDB. It provides abstractions to create, load and deletes customer-defined data called records, which are hold into a RecordSpace. We would like to have this kind of flow for developers:
- Opening RecordSpace, for example 
prod/users - Create a protobuf definition which will be used as schema
 - Upsert schema
 - Push records
 - Query records
 - delete records
 
You need another KeySpace to store another type of data, or maybe a KeySpace dedicated to production env? Juste create it and you are good to go!
🔗Features
It is currently an experiment, but it already has some strong features:
- 
Multi-tenant A
tenantcan create as manyRecordSpaceas we want, and we can have manytenants. - 
Standard API We are exposing the record-store with standard technologies:
 - 
Scalable We are based on the same tech behind CloudKit called the Record Layer,
 - 
Transactional We are running on top of FoundationDB. FoundationDB gives you the power of ACID transactions in a distributed database.
 - 
Encrypted Data are encrypted by default.
 - 
Multi-model For each
RecordSpace, you can define aschema, which is in-fact only aProtobufdefinition. You need to store someusers, or a more complicated structure? If you can represent it as Protobuf, you are good to go! - 
Index-defined queries Your queries's capabilities are defined by the indexes you put on your schema.
 - 
Secured We are using Biscuit, a mix of
JWTandMacaroonsto ensure auth{entication, orization}. 
🔗Why?
Lately, I have been playing a lot with my ETCD-Layer that is using the Record-Layer. Thanks to it, I was able to bootstrap my ETCD-layer very quickly, but I was not using a tenth of the capacities of this library. So I decided to go deeper. What would a gRPC abstraction of the Record-Layer look like?
The name of this project itself is a tribute to the Record Layer as we are exposing the layer within a gRPC interface.
🔗Try it out
Record-Store is open sourced under Apache License V2 in https://github.com/PierreZ/record-store and the documentation can be found https://pierrez.github.io/record-store.
Thank you for reading my post! Feel free to react to this article, I am also available on Twitter if needed.