Show HN: 500k+ events/sec transformations for ClickHouse ingestion
Solves scaling issues for high-throughput data pipelines into ClickHouse (500k+ events/sec) by scaling within a single pipeline using replicas, addressing challenges with stateful transformations, high-cardinality keys, and long time windows.
View Origin LinkProduct Positioning & Context
What happens when throughput grows?Usually, things work fine at 10k events/sec, but we started seeing backpressure and errors at >100k.When the throughput per pipeline stops scaling, then adding more CPU/memory doesn’t help because often parts of the pipeline are not parallelized or are bottlenecked by state handling.At this point, engineers usually scale by adding more pipeline instances.That works but comes with some trade-offs:
- You have to split the workload (e.g., multiple pipelines reading from the same source)
- Transformation logic gets duplicated across pipelines
- Stateful logic becomes harder to manage and keep consistent
- Debugging and changes get more difficult because the data flow is fragmentedAnother challenge arises when working with high-cardinality keys like user IDs, session IDs, or request IDs, and when you need to handle longer time windows (24h or more). The state grows quickly and many systems rely on in-memory state, which makes it expensive and harder to recover from failures.We wanted to solve this problem and rebuild our approach at GlassFlow.Instead of scaling by adding more pipelines, we scale within a single pipeline by using replicas. Each replica consumes, processes, and writes independently, and the workload is distributed across them.In the benchmarks we’re sharing, this scales to 500k+ events/sec while still running stateful transformations and writing into ClickHouse.A few things we think are interesting:
- Scaling is close to linear as you add replicas
- Works with stateful transformations (not just stateless ingestion)
- State is backed by a file-based KV store instead of relying purely on memory
- The ClickHouse sink is optimized for batching to avoid small inserts
- The product is built with GoFull write-up + benchmarks:
https://www.glassflow.dev/blog/glassflow-now-scales-to-500k-...Repo:
https://github.com/glassflow/clickhouse-etlHappy to answer questions about the design or trade-offs.
Related Ecosystem & Alternatives
Discover adjacent products, open-source repositories, and developer tools sharing similar technical architecture.
Deep-Dive FAQs
What is 500k+ events/sec transformations for ClickHouse ingestion?
Where did 500k+ events/sec transformations for ClickHouse ingestion originate?
When was 500k+ events/sec transformations for ClickHouse ingestion publicly launched?
How popular is 500k+ events/sec transformations for ClickHouse ingestion?
Which technical categories define 500k+ events/sec transformations for ClickHouse ingestion?
What are some commercial alternatives to 500k+ events/sec transformations for ClickHouse ingestion?
How does the creator describe 500k+ events/sec transformations for ClickHouse ingestion?
Community Voice & Feedback
Why should I choose this over Flink for a ClickHouse sink? Is the main draw the operational simplicity (no cluster management), or are there specific ClickHouse-native optimizations in your implementation that Flink’s JDBC/official connectors are missing?
Discovery Source
Hacker News Aggregated via automated community intelligence tracking.
Tech Stack Dependencies
No direct open-source NPM package mentions detected in the product documentation.
Media Tractions & Mentions
No mainstream media stories specifically mentioning this product name have been intercepted yet.
Deep Research & Science
No direct peer-reviewed scientific literature matched with this product's architecture.
SaaS Metrics