← dashboards Matrix Homeserver Showdown
Message-send throughput across nine homeserver configs in Docker (2 CPU / 4 GB), 10,000 messages, concurrency 10, fresh server + room per phase.
snapshot 2026-06-11 Concurrent throughput
10 workers hammering one room — messages/second (higher is better).
strix (memory)
TypeScript · memory
3,907msg/s
strix (MariaDB)
TypeScript · MariaDB
2,163msg/s
strix (SQLite)
TypeScript · SQLite
2,101msg/s
strix (Postgres)
TypeScript · Postgres
2,015msg/s
Tuwunel
Rust · RocksDB
759msg/s
Conduit
Rust · RocksDB
727msg/s
Continuwuity
Rust · RocksDB
547msg/s
Synapse
Python · Postgres
115msg/s
Dendrite
Go · Postgres
95msg/s
Scaling with room depth
Sequential throughput as one room fills up — the disk-backed Rust server collapses; node stays flat, even fully durable.
strix SQLite (default)strix SQLite (FULL durable)Conduit (Rust/RocksDB)
The field
Sequential / concurrent throughput and median latency per server.
strix (memory)
TypeScript memory in-RAM
Concurrent3,907msg/s
Sequential1,391msg/s
p50 latency0.64ms
strix (MariaDB)
TypeScript MariaDB durable
Concurrent2,163msg/s
Sequential531msg/s
p50 latency1.78ms
strix (SQLite)
TypeScript SQLite WAL
Concurrent2,101msg/s
Sequential695msg/s
p50 latency0.94ms
strix (Postgres)
TypeScript Postgres durable
Concurrent2,015msg/s
Sequential443msg/s
p50 latency2.05ms
Tuwunel
Rust RocksDB periodic
Concurrent759msg/s
Sequential404msg/s
p50 latency2.24ms
Conduit
Rust RocksDB periodic
Concurrent727msg/s
Sequential504msg/s
p50 latency1.87ms
Continuwuity
Rust RocksDB periodic
Concurrent547msg/s
Sequential471msg/s
p50 latency2.01ms
Synapse
Python Postgres durable
Concurrent115msg/s
Sequential52msg/s
p50 latency18.52ms
Dendrite
Go Postgres durable
Concurrent95msg/s
Sequential87msg/s
p50 latency11.16ms