Indexes are organized as an immutable tree with a single root. Clients work with the root that was valid at the start of the transaction. Each committed transaction creates a new immutable tree of indexes that shares pointers to unmodified indexes with the previous index tree, but contains pointers to indexes modified (in part) by the committed transaction. This mechanism follows a path-copy approach to persistent data structures.
Custom API GraphQL HTTP / REST RPC
The native language of evitaDB is evitaQL. The database model is also directly queryable via gRPC, GraphQL and REST / JSON protocols.
https://github.com/FgForrest/evitaDB/
https://evitadb.io/documentation/
FG Forrest, a.s.
2020