Files
consensus/docs/migrate-to-lux-consensus.md
zeekay 9e1396dc20 docs: three migration guides — Raft/Thrift/ZooKeeper -> Lux consensus
Split into one focused guide per source system + a short index:
- raft-to-lux: drop-in (Do->Commit, FSM->apply, Leader->deterministic writer)
- thrift-to-lux: RPC->ZAP transport+schema; coordination metastore->replog
- zookeeper-to-lux: config/locks/election/membership/watches folded in
Core throughout: replog (ordered replicated log) + pinned-writer for
non-commutative ops; leaderless, permissionless, PQ-final, ZAP-native.
2026-06-24 14:52:41 -07:00

1.2 KiB

Migrating to Lux Consensus

Lux consensus (Quasar) is leaderless, permissionless, post-quantum-final, and ZAP-native — block/vote gossip rides the zap-proto transport, no gRPC, no separate coordination cluster. The core is replog: a replicated, totally-ordered command log — Commit(payload) proposes, and once consensus finalizes, your apply(payload) runs once, in order, on every replica.

Pick your starting point:

  • Raft → Lux — etcd/raft, hashicorp/raft, seaweedfs/raft. A drop-in: server.Do → log.Commit, FSM → apply, Leader() → the deterministic pinned writer.
  • Thrift → Lux — Apache Thrift RPC → ZAP transport+schema; a Thrift coordination metastore → replog.
  • ZooKeeper → Lux — (also etcd-as-coordinator, Consul) config/locks/leader-election/membership/watches folded into the service.

The one idea that recurs: you rarely need Raft or a coordination ensemble — you need an ordered replicated log (replog) plus, for non-commutative ops, a deterministic pinned writer instead of an elected leader.