Example applications for Eventium, the Haskell event sourcing library:
bank— account aggregates, command handlers, a process manager, and a Transfer read model (persistent, SQLite-backed).cafe— a café tab aggregate with an interactive terminal UI.counter-cli— a minimal counter aggregate over the in-memory store.
Prerequisites: Nix (with flakes) + direnv. Entering the directory auto-loads the
dev shell via .envrc; the shell runs hpack to generate the .cabal files.
This repo builds against a sibling checkout of the library, matching the
eventium-hs layout:
eventium-hs/
├── eventium/ # the library
└── examples/ # this repo
just build-local # build against ../eventium (local dev)
just test # run example tests against ../eventium
just format # ormolu --mode inplace
just lint # hlint
cabal.project.dev— local development against../eventium(used byjust build-local/just test). Works today.cabal.project— self-contained build that pulls the library from git (source-repository-package). This becomes usable once theeventium-hs/eventiumrepo exists and commits its generated.cabalfiles (cabal does not run hpack on git dependencies).