Identity in a World of Values
summary
Prototype implements durable persistence by printing s-exprs of impure functions to a file and replaying them to rebuild state, using Clojure refs + STM for atomicity, agents to emit commit-time log entries, a def-tx macro to wrap transactions, and persistent IDs plus clojure.spec for schema checks. Prototype works for small-to-moderate datasets; common‑lisp ancestor ran in production for years. Limits: function var resolution complicates replay, startup time grows with log without snapshotting, and no durability baked into Clojure STM.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 5:40Entry
- 7:04Read eval
- 7:34Database
- 8:40Data Model
- 9:37Closure
- 12:50Rests
- 14:30Identities
- 17:00DevTX
- 17:35Make Account
- 18:05Deposit Withdraw
- 18:32Nested Session
- 19:05Log
- 19:27Test
- 19:42Transaction Log
- 20:03Restoring
- 20:47Where is this going
- 21:13Cons
- 22:23Questions
related talks
52mFull stack FP in Datomic, Clojure, and ClojureScript
33mPersisting Object Oriented State in Functional Programming
50mOrthogonal Persistence, the Model
33mBuilding domain specific databases using Python for prototypes during take off
42mA Practical Functional Relational Architecture
35mPersisting Relations Across Time and Space
40mPutting off Persistence
30mUsing HBase Coprocessors to Implement Prospective Search
