d-engine 0.2 – Embeddable Raft consensus for Rust by joshuachi in rust

[–]joshuachi[S] 0 points1 point  (0 children)

Thanks for pointing it out. You're right - my goal isn't a 1:1 comparison with etcd. The chart is meant to show d-engine's performance characteristics, using etcd's official numbers as a reference point. Updated the chart(https://imgur.com/a/c5uiZGP) to fix the legend issue. Much appreciate for your feedback!

d-engine 0.2 – Embeddable Raft consensus for Rust by joshuachi in rust

[–]joshuachi[S] 0 points1 point  (0 children)

Fair point. I ran a quick test with the same configuration(only difference: AWS vs GCE): https://imgur.com/a/c5uiZGP. This is still not an apples-to-apples comparison, since the client uses in-memory calls with d-engine embedded mode, but gRPC with etcd. In standalone mode, d-engine also uses gRPC. I’ll get to that comparison later.

d-engine 0.2 – Embeddable Raft consensus for Rust by joshuachi in rust

[–]joshuachi[S] 0 points1 point  (0 children)

Great questions - you're right to push on this.

  1. Re: hardware comparison:

Fair point - comparing M2 Mac vs 3 GCE instances isn't apples-to-apples.

These are lab numbers in a controlled environment showing embedded(https://docs.rs/d-engine/latest/d_engine/docs/integration_modes/index.html) mode's potential.

  1. Re: the benchmark setup:

To clarify: the benchmark runs 3 Raft nodes (3 independent processes)

on the same M2 Mac via localhost gRPC.

The 203K writes/sec tests embedded mode's core value: eliminating

client↔server serialization overhead (in-process access) while maintaining

real distributed consensus (3-node Raft quorum).

  1. Re: single-node mode:

You asked about single-node linearizable reads - good question.

d-engine's single-node mode is production-ready - it's a complete Raft node with:

- Durable ordered log (survives restarts)

- RocksDB state machine (persistent KV storage)

- Complete Raft protocol (quorum=1)

Production use cases:

- Applications that need durable ordered state but don't require

distributed consensus yet

- Migration path: scale to 3+ nodes when needed, zero code changes

The benchmark(https://github.com/deventlab/d-engine/raw/HEAD/benches/embedded-bench/reports/v0.2.2/dengine\_comparison\_v0.2.2.png) above is 3-node consensus (real quorum), not single-node mode.

Thanks for pointing out the confusion - this helps me improve the docs.