
About
Alex Campos | Build a Streamhouse with Apache Fluss, Flink and Iceberg
Batch lakehouses are cheap and open, but their data is minutes or hours old. Streaming systems are fresh, but they’re expensive to keep and hard to query. A Streamhouse combines the two: one architecture where the same data is available in sub-second real time and as historical analytics, without running two separate pipelines.
This talk shows how to build one from three open-source projects. Apache Fluss is the real-time storage layer. It has columnar streaming tables, primary-key tables with changelogs, and low-latency lookups. Apache Flink handles ingestion, stream processing and queries. Apache Iceberg is the open lakehouse format for long-term, low-cost storage. We’ll cover how Fluss tiers data into Iceberg automatically, how Flink reads fresh and historical data as one table through union reads, and how this removes much of the usual glue: Kafka-to-lake connectors, duplicate storage and the reconciliation between them.
In a live demo, we’ll ingest an event stream into Fluss, enrich and aggregate it with Flink SQL, and watch it land in Iceberg. Then we’ll query the same table from Flink for second-fresh results and from an Iceberg engine for historical analysis. You’ll leave with a reference architecture, the trade-offs to weigh, and a runnable setup to try yourself.