r/haskell • u/RobertKentKrook • 1d ago
Distributed Haskell - A Small Survey
https://www.krook.dev/posts/distributed-haskell/post.html
Hi!
I recently finished my PhD thesis, which contains a couple of pages about distributed Haskell-work. It is by no means an exhaustive survey, as the covered systems (and to what extent they are covered) are chosen by their relevance to my thesis.
I turned the chapter into a blog post, which some of you may enjoy reading.
37
Upvotes
0
5
u/stevana 1d ago
I find it a bit odd that in a language that pride itself for separating pure from side-effectful code the main library for doing distributed programming is CloudHaskell, where everything is in IO.
If you look at which distributed systems do best when tested with Jepsen, you notice that its the ones which put all non-determinism behind interfaces and implement the interfaces twice: first using real IO (for the production deployment) and second using in-memory datastructures (for testing), and then do property-based testing.
Usually Haskell programmers are good at these kind of tests against fakes, but in this domain some parts of the imperative community are ahead of us. Check out "deterministic simulation testing" by, e.g., FoundationDB (C++) or TigerBeetleDB (Zig).