_ __ __ _ _
| |/ /__ _ / _| | ____ _ | | ___ _ __ ___
| ' // _` | |_| |/ / _` | | | / _ \ '_ \/ __|
| . \ (_| | _| < (_| | | |__| __/ | | \__ \
|_|\_\__,_|_| |_|\_\__,_| |_____\___|_| |_|___/
Real-time particle visualization of data flowing through Kafka and Flink
- Docker + Docker Compose
- Python 3 + pip (for
gen.py)
docker compose up -d
docker psUIs:
- Kafka UI: http://localhost:8085
- Flink UI: http://localhost:8081
docker exec -it kafka /opt/kafka/bin/kafka-topics.sh \
--bootstrap-server localhost:9092 --create --topic input --partitions 1 --replication-factor 1
docker exec -it kafka /opt/kafka/bin/kafka-topics.sh \
--bootstrap-server localhost:9092 --create --topic output --partitions 1 --replication-factor 1docker exec -it flink-jobmanager ./bin/sql-client.sh -f /sql/flink.sqlpython3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt 2>/dev/null || pip install kafka-python
python gen.pydocker exec -it kafka /opt/kafka/bin/kafka-console-consumer.sh \
--bootstrap-server localhost:9092 --topic output --from-beginningReal-time visualization of messages flowing through the Kafka -> Flink pipeline as glowing particles on a dark canvas.
Run locally (after Kafka + gen.py are running):
python lens_bridge.py
# Open http://localhost:8090Or via Docker — it's included in docker compose up.
- Lens UI: http://localhost:8090
- Host Kafka bootstrap:
localhost:9092 - Container Kafka bootstrap:
kafka:19092
docker logs kafka --tail 100
docker logs flink-jobmanager --tail 100
docker logs flink-taskmanager --tail 100
docker logs kafka-ui --tail 100docker compose down -v