Ingest
Use standard Kafka producers, Arrow FlightRPC, HTTP/2 Arrow payloads, or PostgreSQL COPY. Confluent Schema Registry-compatible Avro is supported on the Kafka path.
BoilStream accepts Kafka-protocol, Arrow FlightRPC, HTTP/2 Arrow, and PostgreSQL COPY traffic, makes rows queryable in a hot DuckDB tier, and writes durable Parquet snapshots into DuckLake-managed object storage.
Traditional streaming-to-lakehouse stacks often assemble a broker, a stream processor, object-storage writers, compaction jobs, and a separate query engine. BoilStream combines the ingestion, streaming SQL, hot visibility, and DuckLake write path in one deployable system.
The storage stays open: bulk data is Apache Parquet and the catalog follows the DuckLake specification. Remote DuckDB clients can connect through the BoilStream community extension and receive temporary credentials for the selected catalog.
Use standard Kafka producers, Arrow FlightRPC, HTTP/2 Arrow payloads, or PostgreSQL COPY. Confluent Schema Registry-compatible Avro is supported on the Kafka path.
Incoming batches become visible in the hot DuckDB tier on a configurable commit interval, so dashboards and agents do not wait for Parquet finalization.
Completed data is written as Parquet to S3, Azure Blob, GCS, MinIO, or filesystem storage and registered with the DuckLake catalog.
| Stage | BoilStream component | Result |
|---|---|---|
| Producer connection | Kafka wire protocol, FlightRPC, HTTP/2 Arrow, or PGWire | Existing clients can send typed event batches. |
| Immediate visibility | Per-topic hot DuckDB tier | Recent data is available to SQL queries before cold files finalize. |
| Continuous processing | Streaming views and windowed materialized views | Filters, transforms, and aggregates create derived topics. |
| Durability | Parquet files plus DuckLake catalog metadata | Open-format history lives in customer-controlled object storage. |
| Remote access | PostgreSQL, FlightSQL, Airport, and the DuckDB BoilStream extension | BI tools, services, and DuckDB clients query the same logical data. |
Streaming catalogs use the __stream suffix. Once connected through the BoilStream DuckDB extension, you can create a catalog, use it, and query its tables with standard SQL.
INSTALL boilstream FROM community;
LOAD boilstream;
PRAGMA boilstream_login(
'https://your-server.example/user@example.com',
'password',
'123456'
);
PRAGMA boilstream_create_ducklake(
'events__stream',
'Real-time event catalog'
);
USE events__stream;
SELECT * FROM web_events
ORDER BY event_time DESC
LIMIT 100;
For deployment prerequisites and complete connection examples, use the BoilStream Quick Start.
BoilStream is optimized for the ingestion-to-analytics path. Keep a general-purpose broker when your architecture depends on a broad connector ecosystem, long broker-side retention as the system of record, or application messaging semantics outside BoilStream's supported protocols and processing model.
DuckLake supports data inlining for small changes. BoilStream adds the continuous ingestion, hot query tier, Parquet finalization, and catalog coordination needed to operate a streaming data path around DuckLake.
Recent data is held in the hot DuckDB tier. Durable cold data is stored as Parquet in a configured S3-compatible, Azure, GCS, MinIO, or filesystem backend and registered in DuckLake.
Yes. BoilStream implements the Kafka wire protocol for producers and supports Confluent Schema Registry-compatible Avro on that ingestion path.
Clients can use PostgreSQL-compatible SQL, FlightSQL, Airport, or the BoilStream DuckDB community extension, depending on the deployment and client.