Building a powerful Double Entry Accounting system

Money is a very important thing. Specially for a fintech that operates on other people’s money. It means that all these operations need to be correct. There is no room for bugs. There is no room for money appearing or disappearing. A technique to avoid these problems is double entry accounting.

In this talk we’ll show how we built a double entry accounting system using Clojure and Datomic, functional programming with a little bit of algebra and generative testing. This system has proven to be the most powerful analysis tool, ensuring correctness and driving future predictions in a per-account basis.



Lucas Cavalcanti

Lucas Cavalcanti is the Lead Software Engineer of Nubank, the most influential Brazilian Fintech built as a service oriented architecture leveraging Clojure and Datomic. Lucas is a functional programming enthusiast, and proponent of best practices in software development, with a vast experience in real production applications written in Java, Scala, Ruby and now Clojure. He holds a BS in Computer Science from the University of Sao Paulo.