๐Ÿงฌ

Datomic

Datomic is an unusual immutable database โ€” instead of overwriting data, every change is recorded as a new fact, so you can query the entire database as it existed at any point in its history. Maintained by Cognitect/Nubank, it's the smallest-adoption database in this ranking, sitting around #30 (roughly 0.6%), built primarily for use with Clojure.

๐Ÿ“Œ Quick facts
Type: Immutable database
Made by: Cognitect / Nubank
License: Proprietary (with a free tier)
Hosting: Self-hosted or cloud
Primary use case: Applications that need a full, queryable audit history of every change ever made

Core concepts & example

Datomic is queried with Datalog, a declarative query language distinct from SQL, most naturally used from Clojure:

(d/q '[:find ?name ?age
      :where [?e :person/name ?name]
             [?e :person/age ?age]
             [(> ?age 18)]]'
     db)

Getting started

Datomic runs as a peer library plus a storage backend, most easily tried locally with the free dev-local option:

;; add to a Clojure deps.edn project
{:deps {com.datomic/local {:mvn/version "1.0.267"}}}
๐ŸŽฏ Best for: applications, especially in Clojure, that need a complete, queryable audit trail of every change ever made to the data.