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
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