Gossip gloomers: What to do with KVs?

Several points about persistence/durability in these challenges have been unclear from the website:

  1. It’s unclear if Jepsen’s Maelstrom tests for process crashes, or should people assume processes will stay up and therefore use in-memory data structures only.
  2. In https://pkg.go.dev/github.com/jepsen-io/maelstrom/demo/go, I see many KV stores like LWWKV LinKV and not sure what to do with them? (comes back to point 1) I made it only until challenge#3b so far so maybe it’s useful for the rest.
  3. Should folks think about implementing WALs etc for these exercises? (this also comes back to point 1)

I got my answer to #2 from the blog post.

Good question. Maelstrom only injects network failures so it won’t intentionally crash your process. You can use in-memory data structures for these challenges. I added a note to the first challenge to make that clear. Thanks for posting about it!