~/talk

Datomic Auto Schemas

Talkat Clojure/conj 2017 · 2017-10-12..10-14· [databases, data-engineering]
slides:none on file

Automatic generation of Datomic schemas from arbitrary JSON by scanning incoming documents, inferring datatypes, and asserting attribute defs before data ingest; arrays become linked-list cons cells to preserve order, nulls map to a singleton ref and conflicting types create stub attribute entities (renamed typed variants) so round-trip JSON stays lossless. Implementation uses Clojure transducers, a DB wrapper that caches attribute metadata, and a start-tx/commit-tx long-running transactions replay that commits speculative work. Works in production inside the Naga rule engine; code lives in the Naga repo and is practical for heterogeneous JSON.

AI-written summary · about

  1. 0:00Intro
  2. 0:21Case Study from Naga
  3. 2:19JSON Transport
  4. 5:54JSON Tree
  5. 6:25JSON Graph
  6. 7:03Datomic Entities
  7. 9:27Datomic Types
  8. 10:25Simple conversion
  9. 13:50Null Entity
  10. 14:33Annotated Attributes
  11. 15:09Arrays
  12. 16:57Array Structure
  13. 18:48Nested Objects
  14. 19:27Nested Structure
  15. 21:14Example JSON
  16. 23:17Existing Properties
  17. 23:54General Procedure
  18. 25:19API Wrapping
  19. 26:03Immutable Records
  20. 26:59Query Rewriting
  21. 28:03Example Rewrite
  22. 29:08Transactions
  23. 30:10Read/Write Transaction
  24. 32:28JSON Export
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.