Archive for February, 2009

Clojure event sourcing

Sunday, February 22nd, 2009

Event sourcing: Event Sourcing ensures that all changes to application state are stored as a sequence of events. Not just can we query these events, we can also use the event log to reconstruct past states, and as a foundation to automatically adjust the state to cope with retroactive changes. I recently ...

Understanding Clojure’s PersistentVector implementation

Sunday, February 1st, 2009

Update: See also the description of PersistentHashMap. One of the unique features of Clojure is that the core data structures are persistent (immutable with efficient structural sharing). This includes data structures Vector and Map that are mutable in most other languages. To be useful, operations on persistent data structures need to ...