We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
11 insights after 11 years with the functional database Datomic - Magnar Sveen - NDC Oslo 2024
Learn how Datomic's immutable facts, time-aware data model, ACID transactions, and Datalog queries revolutionize database architecture after 11 years of production use.
- Datomic stores data as immutable facts in entity-attribute-value format rather than traditional SQL tables
- Time is a first-class concept - all data is automatically versioned and you can query the database as it existed at any point in time
- Facts are never updated or deleted, only new facts are added (with optional retractions), preserving full history
- Transactions are fully ACID compliant and are themselves entities that can carry metadata about who made changes and why
- Database reads are highly scalable since clients are peers that query data directly, while writes go through a central transactor
- Storage is pluggable - can use various backends like DynamoDB, Postgres, Cassandra etc.
- Data model is flexible - can represent sparse data, graphs and mixed data structures better than rigid SQL tables
- Designed to work especially well with Clojure but usable from any JVM language
- Queries use Datalog, a Prolog-inspired declarative query language that enables graph traversal
- Full history tracking enables better auditing and temporal querying capabilities while maintaining reasonable storage requirements