I’ve moved my personal site to rystsov.com
The old domain is no longer under my control, so please update any links if you can 🙏
Replying to @gunnarmorling
There are multiple ways to handle reads, each with its own trade-off space. Many of the recent Paxos read optimizations apply to Caspaxos as well. But if a system handles reads as writes to avoid staleness, then yes - those reads inherit the same issues as writes
Replying to @rystsov @gunnarmorling
That said, some systems naturally have an organic single writer/reader per labeled register (e.g., a user working with their own data). In those cases, dueling isn’t really a concern for Caspaxos, especially if the system is modeled as a set of independent, rewritable registers
Replying to @gunnarmorling
In general I’m not a fan of broad generalizations :) but yeah, it’s nice when a system has a weak leader or a mostly single-writer pattern to guarantee liveness
Denis Rystsov retweeted
Spent some time digging into the #CASPaxos paper ("Replicated State Machines without logs"), by @rystsov. It's really easy to follow; do I get it right though that two competing writers could block each other from ever moving beyond the prepare phase?
arxiv.org/abs/1802.07000
Replying to @rystsov @gunnarmorling
So overall, I think weak-leader election should stay modular and not be bound to any specific replication protocol, as long as the protocol can support it
Replying to @rystsov @gunnarmorling
And during outages, it can make sense to let SREs override leader election entirely and pin a static leader to reduce variability and stabilize the cluster
Replying to @rystsov @gunnarmorling
Some setups already have weak leader election baked in, others rely on consistent routing, and in some cases a Raft-style active heartbeat works fine
Replying to @gunnarmorling
Yeah, the idea is that dueling prevention isn’t inherently tied to achieving strong replication or consensus. I wanted the protocol to let an implementation choose whatever weak leader-coordination approach fits their system best
Replying to @_0x5d
What do you think made the difference today? Was it a new use case, workflow, or something else gave the boost?
Surprising how wrestling with JavaScript years ago helped me onboard with modern C++ & Seastar (cooperative concurrency within core-pinned threads) to develop Redpanda, a distributed streaming platform
You’re inspiring me to experiment and start writing again! I’ve been itching to write a book for a while now 😅


