Features

  • Sintax inspired by SparQL and Crux's datalog.
  • Entities are indexed by date(time).
  • Schemaless.
  • Deep Key-value storage, which means that you can have key values inside hashmap values.
  • Hashing entity map keys content with ENCRYPT.
  • Unique entity maps keys content with UNIQUE for an entity tree.
  • Hashed values are filtered out of SELECT and can only be checked with CHECK keyword.
  • Ron schemas for input and output.
    • JSON is supported via feature.
    • EDN to be supported via feature.
  • Entities are also indexed by entity_name (entity tree key) and Uuid (entity id). Entity map format is a HashMap where keys are strings and values are supported Types.
  • Stores persistent data locally.
    • S3 as a backend is to be developed.
    • DynamoDB as a backend is to be developed.
  • Able to handle very large numbers when using the P suffix.
    • Ex: 98347883122138743294728345738925783257325789353593473247832493483478935673.9347324783249348347893567393473247832493483478935673P.
  • Configuration is done via environment variables.
    • CORS
  • Authentication and Authorization via session token
  • Users created and deleted by ADMIN user.
  • Conditional Update
  • File compression done with zstd.
  • Entity id history
  • Possible Relation Algebra
    • Union by entity_id
    • Intersection by entity_id
    • Difference by entity_id
    • Join
    • Dedup
    • Sort
    • Aggregate

Naming conventions:

  • Entity Tree is similar to SQL table, it is the data structure that contains all ids and entities map relations.
  • Entity ID is the id of an entity inside Entity tree.
  • Entity map is the content of and entity associated with the entity id.