Contains my (poor) attempts at working through Jepsen's maelstrom exercises - a workbench for learning distributed systems by writing your own. I'm using Haskell and Control.Concurrent.Async + software transactional memory to muddle my way through.
Should not be used as example code for anything - very messy.
Uses nix-flakes so enable them if you haven't already to get a Haskell environment
$ nix develop
$ cd maelstrom-exercises
$ stack build
To run the local unit tests
$ cd maelstrom-exercises
$ stack test
To run the actual maelstrom tests
$ stack install
$ ../maelstrom/maelstrom test -w broadcast --bin maelstrom-exercises-exe --rate 100 --time-limit 2 # for example
You'll likely need to grab the maelstrom binary and jars from Github