The goal of this project is to provide a system to easily access the full power of Event-Source / CQRS systems.
Manage every single entity of your Data as a simple Event-Source entity. Track atomic updates. Restores entities at a given version. Timetravel to know what was the exact state of an entity on a given date...
Every Data in the Datastore
is contractualized thanks to
the json-schema
[^1] standard. This standard is allowing you
to access a strict documentation in your RESTful API with
OpenAPI 3.0 (ex-Swagger) [^2] or in your streamed events.
Stream your data with ease thanks to the stream
entrypoint
of the Datastore
's API. You can use it to deploy workers
easily with automatic reconnection, pattern matching and
logging.
100% of the Data handled by the Datastore
is available through
an compliant OpenAPI 3.0 [^2] specification. You can add as
many event or business rule you need in your system and make
it available to everyone.
Encrypt fields of your Data to make it inaccessible by users having access to your database. You can perform multiple keys encryption, keys rotation, on-demand document encryptionm etc.
Access to the Data is controlled with 4 different levels.
-
READ
tokens can only read Data, potentially encrypted Data. -
DECRYPT
tokens can read Data clearly -
WRITE
tokens can write Data in theDatastore
-
ADMIN
tokens can create new models and indexes
Datastores
In addition of the sdk
available to communicate with the
Datastore
API easily, an aggregation
pipeline is made
availabe to perform complex aggregations between different
instances of the Datastore
to handle projections
, trigger
specific branches of a business logic or keep track of some
events.