Vue d’ensemble

KSQL est une interface SQL pour le stream processing sur Kafka.

Permet d’écrire des requêtes SQL plutôt que du code Java/Scala.

Construit au-dessus de Kafka Streams.

Composants principaux

graph TB
    A[KSQL CLI/REST API] --> B[KSQL Server]
    B --> C[Kafka Cluster]
    B --> D[State Stores]
    C --> E[Input Topics]
    C --> F[Output Topics]

KSQL Server : exécute les requêtes SQL sur les topics Kafka. Gère l’état et la tolérance aux pannes.

KSQL CLI / REST API : interfaces pour soumettre requêtes et inspecter résultats.

Kafka Cluster : stocke les topics d’entrée et de sortie. Assure scalabilité et persistance.

State Stores : utilisés pour jointures, agrégations, calculs fenêtrés. Implémentation avec RocksDB ou in-memory.

Modèle d’exécution

KSQL compile le SQL déclaratif en topologie Kafka Streams.

Chaque opérateur correspond à un nœud dans le graphe de dataflow.

Exemple de transformation : Filter → Map → Aggregate → Sink.

Les requêtes sont distribuées et fault-tolerant.

Exactly-once semantics grâce au protocole transactionnel de Kafka.