Docker-based demo and testing environment for Streambased components.
Streambased unifies Apache Kafka and Apache Iceberg, enabling real-time analytics across streaming and historical data without traditional batch pipelines. See Streambased Overview for details.
The easiest way to try out BreakStream and Streambased is via GitHub Codespaces.
- Click the green Code button above and select Open with Codespaces > New codespace.

- Wait for the Codespace to initialize (this may take a few minutes).
- Open a terminal in the Codespace and run:
./bin/start.sh

Run the interactive demo to see Streambased in action:
./bin/start.shThis starts the full stack and walks through:
- Unified data views - Query streaming (hotset) and historical (coldset) data with SQL
- Data tiering - Move data from Kafka to Iceberg
- Extended retention - Kafka consumers reading historical data via KSI
See Demo Quickstart Guide for the full walkthrough.
- Streambased Overview - Product introduction and concepts
- Architecture - Component diagram and interactions
- Demo Quickstart - Hands-on walkthrough
- Docker and Docker Compose
- jq
- Java 11+
- ~8GB RAM available for Docker
# Run interactive demo
./bin/start.sh
# Run automated tests
./bin/start.sh core_functions
# Run all test specs
./bin/run_all.sh
# Stop environment
./bin/stop.sh
# Setup mode (start environment, skip tests)
SETUP_MODE=true ./bin/start.sh core_functionsBreakStream also serves as a black-box testing framework for Streambased components.
A test consists of 3 components:
-
Spec (
specs/<name>/spec.json) - Defines Docker components, datasets, and tests to run:{ "components": ["kafka", "iceberg", "datagen-setup", "datagen-background", "streambased"], "setup_datasets": ["core"], "background_dataset": "core", "tests": ["core_functions"] } -
Datasets (
datasets/<name>/) - ShadowTraffic configs for data generation:setup.json- One-shot data prepopulationbackground.json- Continuous background trafficpost_setup.sh- Post-load actions (e.g., copy to Iceberg)
-
Test Cases (
tests/<name>/run.sh) - Shell script returning 0 for success
Specs prefixed with demo_ are interactive demonstrations that:
- Expect user interaction (press key to continue)
- Leave environment running after completion
- Don't verify correctness, just demonstrate features