explaingit

el10savio/ecommrt

Analysis updated 2026-05-18

3GoAudience · developerComplexity · 4/5Setup · moderate

TLDR

A demo streaming pipeline that feeds a Brazilian e-commerce dataset through Kafka and Debezium CDC into ClickHouse, displayed as a live Grafana analytics dashboard.

Mindmap

mindmap
  root((repo))
    What it does
      Stream CDC changes
      Real-time analytics
      E-commerce demo
    Pipeline Steps
      Go producer
      Kafka queue
      Debezium CDC
      ClickHouse store
    Visualization
      Grafana dashboard
      Business KPIs
      Pipeline health
    Setup
      Docker Compose
      Kaggle dataset
      Single make command
Click or tap to explore — scroll the page freely

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

Learn how to build a CDC-based real-time streaming pipeline using Kafka, Debezium, and ClickHouse

USE CASE 2

Set up a working demo analytics dashboard showing live order metrics from a realistic e-commerce dataset

USE CASE 3

Study how to wire Go producers and consumers to Kafka in a multi-service Docker Compose environment

What is it built with?

GoKafkaPostgreSQLClickHouseGrafanaDebeziumDockerOpenTelemetry

How does it compare?

el10savio/ecommrtalexremn/finalizer-doctorazer/diskwhere
Stars333
LanguageGoGoGo
Setup difficultymoderateeasyeasy
Complexity4/53/51/5
Audiencedeveloperops devopsdeveloper

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

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Docker Desktop and the Olist CSV files downloaded from Kaggle placed in the data/olist/ directory before running make setup.

In plain English

Ecommrt is a demo data pipeline that shows how to stream database changes into a real-time analytics dashboard. It uses a publicly available Brazilian e-commerce dataset from Kaggle as its data source, simulating a live online store by continuously feeding order records into the system. The goal is to show how changes in a database can be picked up automatically and displayed on a live dashboard without any manual refresh or batch jobs. The architecture connects several tools in sequence. A program written in Go reads the dataset and sends order events into Kafka, which is a message queue that holds data in transit. Kafka routes those events to two places: a set of consumers that write orders into a PostgreSQL database, and directly into another database called ClickHouse that is designed for fast analytical queries. A tool called Debezium watches the PostgreSQL database for any new or updated rows and automatically forwards them into ClickHouse through Kafka as well. A Grafana dashboard then queries ClickHouse to show live business metrics: total revenue, orders per minute, top products, and pipeline health indicators. Setting up the project requires Docker, the Go runtime, and the Olist CSV files downloaded from Kaggle. Running a single setup command starts all services in the correct order, applies the database schema, and connects the components together. Once running, the Grafana dashboard is available at a local web address. This project is useful as a learning reference for engineers who want to understand how to build a CDC-based streaming pipeline with real components rather than toy examples. It demonstrates how to combine Kafka, Debezium, ClickHouse, and Grafana in a working system using a realistic dataset.

Copy-paste prompts

Prompt 1
Walk me through the ecommrt pipeline step by step: how does an order row travel from the Go producer all the way to the Grafana dashboard?
Prompt 2
How does Debezium capture changes from PostgreSQL in this project? What configuration connects it to the Kafka topic for ClickHouse?
Prompt 3
What are the prerequisites to run ecommrt locally, and what does the make setup command do behind the scenes?
Prompt 4
How does ecommrt expose Go runtime and business metrics via OpenTelemetry, and which metrics appear in the Grafana dashboard?

Frequently asked questions

What is ecommrt?

A demo streaming pipeline that feeds a Brazilian e-commerce dataset through Kafka and Debezium CDC into ClickHouse, displayed as a live Grafana analytics dashboard.

What language is ecommrt written in?

Mainly Go. The stack also includes Go, Kafka, PostgreSQL.

How hard is ecommrt to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is ecommrt for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub el10savio on gitmyhub

Verify against the repo before relying on details.