Yup, this is the key problem with these consensus algorithms. They don't handle shards very well. Most systems these days either punt and don't do updates via the consensus algorithm (Apache Kafka), or they use two-phase commit (FoundationDB, many others).<p>This is important work, but I don't think they're really going to succeed is making a truly large-scale system. The problem is the heartbeat; you can't have every node talking to every other node every few seconds.<p>What we really need is someone smart to come up with a consensus algorithm that doesn't need a heartbeat. Until then, it's two-phase commit if you want a reliable, large-scale (if not performant) system.<p>Right now, if you want a system that runs fast you use a consensus algorithm for shard metadata, but you do writes directly to the nodes without getting a consensus first. You run the risk of losing acknowledged writes, but it's the best you can do if you need speed.