Database
Database backends
The application uses Datomic flavoured datalog as its database query language. The actual database backend can be configured to be any Datomic compatible database, such as Datomic or Datahike.
The Datomic model is a bit different from the traditional SQL model. It is a graph database, where the data is stored as a set of facts. The facts are a list of tuples called datoms. A datom is a record of a relation between two entities, transaction data and a boolean indicating if the datom is applied or redacted. A transacted datom is never changed, but the seen value can be updated by later transactions. This means that the database is append-only and the history of the database is kept, so it is always possible to review the changes that led to the current state of the database.