DRAVNby Poro-IT
PricingGet Started
// Performance

Benchmarks

Real performance numbers from DRAVN's benchmark suite. Tested with 1M rows of synthetic USA weather data across PostgreSQL, SQLite, and Kafka on a single machine.

Node v24.12PostgreSQL 16SQLite (better-sqlite3)Kafka 7.6 (KRaft)Windows 11
311x
ELT vs In-Process
1,332x
Batch vs Row-by-Row
300K
Rows/sec Streaming
280K
SQLite Read rows/s
20K
Kafka msg/sec
01

Execution Mode Comparison

100,000 rows — aggregate by state and year. Same source, same target, same transform. The only difference is where the work happens.

// BASELINE
600
rows / second
166.72s for 100K rows
// RECOMMENDED
186,342
rows / second
0.54s for 100K rows
ELT is 311x faster — data never leaves the database.
02

PostgreSQL Batch Write Performance

100,000 rows written to PostgreSQL with different batch sizes. Multi-row INSERT with transactions.

Batch SizeDurationRows/secSpeedup
1 (row-by-row)47.38s211x
5089.22s1,12153x
10045.31s2,207105x
5008.03s12,446593x
1,0005.33s18,747893x
5,0003.57s27,9771,332x
03

Source Read Speed

100,000 rows read from different source types into memory.

SQLite280,218 rows/s
JSON file147,111 rows/s
PostgreSQL103,551 rows/s
CSV file91,181 rows/s
04

Streaming 1M Rows

1,000,000 rows streamed with backpressure at different chunk sizes. Memory stays flat — only one chunk in memory at a time.

Chunk SizeDurationRows/secPeak Memory
100109.63s9,121580 MB
50034.43s29,047579 MB
1,00018.20s54,942586 MB
5,0003.33s300,341586 MB
Memory stays at ~580 MB regardless of chunk size — backpressure works.
05

SQLite Performance (Lite Mode)

SQLite with WAL mode — the foundation of DRAVN Lite. No external database needed.

289,233
READ rows/sec
168,947
WRITE rows/sec
244,173
CONCURRENT R+W

Write Batch Size Comparison

Batch 112,894 rows/s
Batch 50131,852 rows/s
Batch 100144,934 rows/s
Batch 500161,718 rows/s
Batch 1,000168,947 rows/s
Batch 5,000133,138 rows/s
06

Kafka Streaming

Apache Kafka 7.6 in KRaft mode. Produce, consume, and end-to-end pipeline throughput.

TestMessagesmsg/sec
Produce batch 5010,00019,996
Produce batch 100010,00016,919
Consume10,0002,192
E2E produce+consume10,0002,642
Kafka → PostgreSQL10,0002,414
07

Concurrent Pipeline Stress

Sequential (3x 10K)
10,658
rows / second
Parallel (3x 10K)
23,349
rows / second
Parallel pipelines: 2.2x faster than sequential.
NOTE

Methodology

All benchmarks run on a single machine using DRAVN's built-in benchmark suite (npm run benchmark:full). Data is 1M rows of synthetic USA weather station readings (14 columns, ~258 MB JSON).

PostgreSQL 16 and Redis 7 run in Podman containers. SQLite uses better-sqlite3 with WAL mode. Kafka 7.6 runs in KRaft mode (no ZooKeeper). Timing uses performance.now(); memory via process.memoryUsage().heapUsed.

Numbers will vary by hardware, network, and data shape. Run the benchmark suite on your own infrastructure for accurate results.

We use cookies to analyse site traffic and improve your experience. Essential cookies are always active. Read our Privacy Policy for details.