Building a powerful Double Entry Accounting system
summary
A production double-entry ledger for a credit‑card fintech implemented with Clojure + Datomic + Kafka, modeling each business event as one movement of balancing entries (debit/credit pairs), storing post‑date and transaction time separately, and caching incremental balances for fast queries. Declarative rule books map Kafka JSON events to account entries; generative testing finds real bugs — the first property run uncovers many defects that take days to fix. The system supports per‑account analysis, cohort queries and invariant checks before persisting.
AI-written summary · about
chapters (8)
- 0:00Start
- 2:03User Balances
- 16:43Payments
- 22:44Movement Invariants
- 23:16Generative Testing
- 23:46Schema Generators
- 33:00Declarative Rules
- 33:35Financial Analysis
related talks
31mCode like an accountant: Designing data systems for accuracy, resilience and auditability
36mLLM-Driven Financial Ledgers: Real-Time Accounting Systems at Scale
43mScaling Full-Stack Applications
57mLessons in Building a System that Processes More than 70 Billion Events Daily
32mClojure is a Foreign Country: Combining Datomic with Scala
01h 14mQLDB deep dive
27mDjango Ledger | Uniting Developers and Accountants for... with Miguel Sanda
44mFrom REST to CQRS with Clojure, Kafka, & Datomic
