Skip to content

Exemple de pipeline d’événements basé sur Kafka, développé en Java avec Spring Boot. Il simule une chaîne complète de traitement d’événements envoyés via une API REST, consommés et persistés dans une base de données PostgreSQL, avec un monitoring en temps réel via Redpanda Console.

Notifications You must be signed in to change notification settings

Kafka-spring/spring-kafka-pipeline

Repository files navigation

🔄 kafka-event-pipeline

🧰 Producteur/Consommateur Kafka avec Spring Boot + Monitoring Redpanda Console

❗ Problème à résoudre :

"📬 Publier des événements via une API REST → Kafka → Consommateur → Stockage en base PostgreSQL"


🔁🌐 Fonctionnement

Ce projet simule une chaîne d’événements complète :

  1. Postman envoie un POST /api/events
  2. Le Producteur Spring Boot publie l’événement sur un topic Kafka
  3. Le Cluster Kafka réplique le message sur 3 brokers
  4. Le Consommateur Spring Boot lit et sauvegarde les événements dans PostgreSQL
  5. Redpanda Console permet d’inspecter les messages en temps réel

🧾 Fonctionnalités principales

  • ⚖️ Répartition automatique des partitions sur 3 brokers Kafka
  • 📮 API REST pour publier les événements
  • 👂 Consumer qui écoute le topic events-topic
  • 💾 Persistance des messages dans PostgreSQL
  • 🧭 Redpanda Console pour visualiser les topics et partitions Kafka
  • 🐳 Infrastructure complète via docker-compose

🛠️ Stack technique

Composant Description
Spring Boot Producteur & Consommateur Kafka
PostgreSQL Base de données pour le stockage des événements
Docker Compose Déploiement multi-conteneurs
Apache Kafka Broker de messages Kafka
Redpanda Console Interface web pour surveiller Kafka

🛢️ Structure de la base de données

| id | uuid | timestamp |


📊 Diagramme de flux

flowchart TD
  subgraph DockerCompose

    subgraph Producteur
      A[Postman] -->|POST /api/events| B[Spring Boot - Producer]
    end

    subgraph Cluster Kafka
      B -->|send message| C[Kafka Topic: events-topic]
    end

    subgraph KafkaCluster
      C --> P1[Partition 1 - Broker 1]
      C --> P2[Partition 2 - Broker 2]
      C --> P3[Partition 3 - Broker 3]
    end

    subgraph Monitoring
      K[Redpanda Console] --> C
    end

    subgraph Consommateur
      D[Spring Boot - Consumer] -->|consume| C
      D -->|persist| DB[(PostgreSQL DB)]
    end

  end
Loading

About

Exemple de pipeline d’événements basé sur Kafka, développé en Java avec Spring Boot. Il simule une chaîne complète de traitement d’événements envoyés via une API REST, consommés et persistés dans une base de données PostgreSQL, avec un monitoring en temps réel via Redpanda Console.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published