Building Interactive Query Tools on Datomic
summary
Builds a query UI that turns user-friendly domain filters into composable Datomic datalog fragments, using instaparse for tiny DSLs, fragment builders with stable-gensym to avoid variable collisions, and optional query functions that call legacy APIs. Handles tens of thousands of jobs with a progress-visualization and drill-down rows, cuts pathological queries from 20–30 minutes to ~100 ms by reordering clauses, uses a mcache cluster for ~5x speed and 99.99% hit rate, and runs on a Datomic store with billions of datoms and multi-terabyte storage.
AI-written summary · about
chapters (21)
- 0:00Intro
- 0:32Outline
- 1:09Origins
- 3:53Cook Cloud
- 5:10What do users want to ask?
- 7:13Goals
- 12:05Query design
- 13:10Filter Construction
- 16:06Mapping our Queries onto Datalog
- 18:17Grouping/Aggregate Construction
- 19:58Drill down
- 21:55Big Idea: Query Builder
- 22:45Query as data
- 23:35Query fragment builders
- 25:37Query for multiple columns
- 26:14Gensym + Queries
- 27:46Query Construction
- 30:45Performance Considerations
- 34:54Query code generation
- 35:58Why Datomic?
- 39:28In Summary
related talks
52mEnhancing Datalog for Datomic
43mDatalog all the way down
32m"BI and Reporting for Datomic"
47mFunctional Programming in the Cloud: Simpler Application Development with Datomic Cloud
40mThe power of Datomic database
37m11 insights after 11 years with the functional database Datomic
46mThe Datomic Architecture and Data Model
33m¿Where's My Data?
