Skip to content

Datomic, and How We Built It

Stuart Halloway edited this page Mar 13, 2017 · 7 revisions


Datomic is a database of flexible, time-based facts, supporting queries and joins, with elastic scalability and ACID transactions. Datomic queries run your application process, giving you both declarative and navigational access to your data. Datomic facts ("datoms") are time-aware and distributed to all system peers, enabling OLTP, analytics, and detailed auditing in real time from a single system.

In this talk, I will begin with an overview of Datomic, covering the problems that it is intended to solve and how its data model, transaction model, query model, and deployment model work together to solve those problems. I will then use Datomic to illustrate more general points about designing and implementing production software, and where I believe our industry is headed. Key points include:

  • the pragmatic adoption of functional programming
  • how dynamic languages fare in mission- and performance- critical settings
  • the importance of data, and the perils of OO
  • the irony of git, or why developers give themselves better databases than they give their customers
  • perception, coordination, and reducing the barriers to scale
  • human values: courage, pragmatism, and patience


  • Slides from Devnexus 2013
  • Slides from SCNA 2013
  • Video from CME Group Technology Conference 2012
  • Slides from CME Group Technology Conference 2012
You can’t perform that action at this time.