← 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.

02505007501,0001,00010,00050,000100,000
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

Single-run on one machine — directional, not lab-grade. strix is the local TypeScript homeserver.