apache / apache/pinot

Proposal: Stateful Stream Processing in Apache Pinot

Open
#19,119 4 comments 0 reactions 1 assignee Claimed by @manikBS View on GitHub
ingestion PEP-Request real-time
Dominant language
Java
Stars
6.1k
Forks
1.5k
Avg merge
2d 3h
Merged PRs (30d)
195

Description

Currently, Pinot supports real-time ingestion with limited stateless transformations. More advanced use cases—such as stateful aggregations (GROUP BY), stream–stream joins, deduplication, and windowed computations—require external systems like Apache Spark or Apache Beam, adding operational complexity and latency.

This proposal is inspired by systems like Materialize, which integrate stateful stream processing with storage and querying, while adapting the design to fit Pinot's distributed architecture.

I have prepared a detailed architecture proposal and would appreciate the community's feedback before moving forward with implementation. If there is interest, I'd be happy to share the complete design in a follow-up email.

https://docs.google.com/document/d/1rFgYSyxmKgEJrihVbamhZgYQSRx1YW0cBYDA9C1vCpk/view

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.