ksqlDB is a database for building stream processing applications on top of Apache Kafka. It is distributed, scalable, reliable, and real-time. ksqlDB combines the power of real-time stream processing with the approachable feel of a relational database through a familiar, lightweight SQL syntax. ksqlDB offers these core primitives:
- Streams and tables - Create relations with schemas over your Apache Kafka topic data
- Materialized views - Define real-time, incrementally updated materialized views over streams using SQL
- Push queries- Continuous queries that push incremental results to clients in real time
- Pull queries - Query materialized views on demand, much like with a traditional database
- Connect - Integrate with any Kafka Connect data source or sink, entirely from within ksqlDB
Composing these powerful primitives enables you to build a complete streaming app with just SQL statements, minimizing complexity and operational overhead. ksqlDB supports a wide range of operations including aggregations, joins, windowing, sessionization, and much more. You can find more ksqlDB tutorials and resources here.