Back to Devoured - May 13, 2026
DEVOURED
Quack: The DuckDB Client-Server Protocol

Quack: The DuckDB Client-Server Protocol

DevOps DuckDB
DuckDB launched Quack, an HTTP-based client-server protocol that beats PostgreSQL at small writes and transfers 60 million rows in under 5 seconds.
What: DuckDB released Quack on May 12, 2026, an HTTP-based client-server protocol available in v1.5.2 as a core_nightly extension. It supports multiple concurrent writers using token authentication on port 9494. Benchmarks on AWS m8g.2xlarge instances show 60M row transfers in 4.94 seconds (vs Arrow Flight SQL's 17.40s and PostgreSQL's 158.37s) and 5,434 tx/s for small writes with 8 threads (vs PostgreSQL's 4,320 tx/s).
Why it matters: This signals that even purpose-built in-process analytical databases need multiplayer capabilities for centralized state management. DuckDB chose custom serialization over Arrow Flight SQL to maintain control over protocol evolution and achieve single round-trip execution, prioritizing iteration speed over interchange format adoption.
Deep dive
  • DuckDB announced Quack, an HTTP-based client-server protocol enabling multiple DuckDB instances to communicate with concurrent write support, available in v1.5.2 as a core_nightly extension with production release planned for DuckDB v2.0 in fall 2026
  • Marks a significant architectural shift from DuckDB's in-process-only model (similar to SQLite) to support centralized state use cases like multi-process observability collection and live dashboards
  • Protocol built directly on HTTP using application/duckdb MIME type, leverages DuckDB's internal serialization primitives battle-tested in Write-Ahead Log implementation
  • Authentication uses randomly-generated tokens by default, authorization callbacks customizable via SQL macros or user functions, server binds to localhost on port 9494 by default, recommends nginx with Let's Encrypt for public exposure
  • Optimized for single round-trip query execution and efficient bulk transfers: 60M rows transferred in 4.94s vs Arrow Flight SQL (17.40s) and PostgreSQL (158.37s) on AWS m8g.2xlarge instances with 0.280ms ping latency
  • Small write throughput reaches 5,434 tx/s with 8 parallel threads vs PostgreSQL's 4,320 tx/s, though PostgreSQL scales better beyond 8 threads due to current DuckDB concurrent insertion limits per table
  • Team rejected Arrow Flight SQL to maintain control over data types and protocol evolution without external standards constraints, and to enable single round-trip execution (Arrow Flight SQL requires minimum two round trips per query)
  • DuckDB acts as both client and server, enabling browser-based DuckDB-Wasm to connect directly to remote DuckDB instances via HTTP
  • Future roadmap includes DuckLake integration for remote catalog server, auto-installation of extension, improved syntax via new parser, transaction throughput scaling beyond 8 threads, extension-defined protocol messages, and replication protocol for read replicas
  • DuckCon #7 on June 24, 2026 will feature State of the Duck talk on Quack adoption; acknowledgements to Boaz Leskes (MotherDuck) and Philip Moore (GizmoSQL) for sharing client-server DuckDB lessons
Decoder
  • In-process database: Database architecture where the engine runs as a library inside the application's process (like SQLite or original DuckDB) rather than as a separate server, eliminating network overhead but limiting multi-process concurrent writes to the same database file
Original article

Full article content is not available for inline reading.

Read the original article →

Explore all 50 articles in today's digest

Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi