explaingit

glassflow/clickhouse-etl

Analysis updated 2026-05-18

474TypeScriptAudience · dataComplexity · 4/5LicenseSetup · hard

TLDR

An open source stream processing tool that transforms and moves large volumes of real-time data from sources like Kafka into ClickHouse.

Mindmap

mindmap
  root((GlassFlow))
    What it does
      Streams data to ClickHouse
      Stateless and stateful transforms
      Filters and dead letter queue
    Tech stack
      Kubernetes
      Kafka
      ClickHouse
    Use cases
      Real time ETL pipelines
      Deduplicate streaming data
      Monitor pipeline health
    Audience
      Data engineers
      Ops teams

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Move and transform large volumes of streaming data from Kafka into ClickHouse in real time.

USE CASE 2

Deduplicate records or join data arriving within a time window before it lands in a table.

USE CASE 3

Monitor a data pipeline's health with built in metrics and recover failed events from a dead letter queue.

What is it built with?

KubernetesKafkaClickHouseOpenTelemetry

How does it compare?

glassflow/clickhouse-etlsalhanabil/cloakbrowsersveltejs/cli
Stars474479483
LanguageTypeScriptTypeScriptTypeScript
Last pushed2026-07-03
MaintenanceActive
Setup difficultyhardeasyeasy
Complexity4/53/52/5
Audiencedatadeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Self-hosted on Kubernetes, production use requires a managed Kubernetes service such as AWS EKS, GKE or AKS.

Use freely for any purpose, including commercial use, as long as you keep the copyright and license notices.

In plain English

GlassFlow is an open source stream processing engine built to move and reshape large amounts of data into ClickHouse, a database designed for fast analytics. It is meant for pipelines that need to handle huge volumes of data, described in the README as terabyte scale, moving information in real time from sources like Kafka into ClickHouse tables. The tool offers two kinds of transformations. Stateless transformations use an expression engine to apply straightforward changes to each piece of data as it passes through, such as removing null values or filling in missing timestamps. Stateful transformations rely on a built in state store to handle more complex logic, like removing duplicate records or joining data that arrives within a certain time window of each other. Beyond transformations, GlassFlow can also filter out events before they reach ClickHouse, or simply move data across without changing it at all. Operationally, the project includes built in metrics with OpenTelemetry support so teams can monitor their pipelines, along with a dead letter queue that catches events which fail to process, so a single bad record does not stop the whole pipeline. Instead, those failed events can be inspected and reprocessed later. GlassFlow is self hosted and runs on Kubernetes, and the README points to a Helm based installation guide for setting it up on services like AWS EKS, GKE or AKS. There is also a live demo environment where visitors can see it running against a real cluster with a Grafana dashboard, plus written documentation covering installation, everyday usage and its overall architecture. The project is released under the Apache License 2.0.

Copy-paste prompts

Prompt 1
Walk me through deploying GlassFlow on Kubernetes with Helm to connect Kafka to ClickHouse.
Prompt 2
Explain the difference between stateless and stateful transformations in GlassFlow.
Prompt 3
How does GlassFlow's dead letter queue work when an event fails to process?
Prompt 4
Show me how to filter out unwanted events before they reach ClickHouse using GlassFlow.

Frequently asked questions

What is clickhouse-etl?

An open source stream processing tool that transforms and moves large volumes of real-time data from sources like Kafka into ClickHouse.

What language is clickhouse-etl written in?

Mainly TypeScript. The stack also includes Kubernetes, Kafka, ClickHouse.

What license does clickhouse-etl use?

Use freely for any purpose, including commercial use, as long as you keep the copyright and license notices.

How hard is clickhouse-etl to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is clickhouse-etl for?

Mainly data.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.