Cette application utilise Spring WebFlux et Project Reactor pour consommer et produire des messages Kafka de manière réactive.
Votre mission est de transformer cette application réactive en application impérative utilisant les Virtual Threads de Java 21+.
- Remplacer
KafkaReceiver/KafkaSenderpar@KafkaListener/KafkaTemplate - Éliminer toutes les classes de Project Reactor (
Mono,Flux, etc.) - Transformer le code asynchrone en code synchrone/impératif
- Supprimer la configuration réactive Kafka
- Activer les Virtual Threads dans Spring Boot 3.5
- Configurer le TaskExecutor pour utiliser les Virtual Threads
- S'assurer que les listeners Kafka utilisent les Virtual Threads
L'application doit toujours :
- Consommer les messages du topic
input-topic - Simuler un traitement (délai de 100ms)
- Créer un message ACK avec le statut "PROCESSED"
- Envoyer l'ACK au topic
output-topic - Logger les opérations importantes
- Utiliser Spring Boot 3.5 et Java 25
- Ne pas changer le modèle
Message - Conserver la même logique métier
- Le code doit être simple et maintenable
- Ajouter des commentaires pour expliquer la configuration des Virtual Threads
starter/
├── pom.xml # Dépendances Maven
├── src/main/java/com/sciam/test/
│ ├── KafkaWebFluxApplication.java # Classe principale
│ ├── config/
│ │ └── KafkaConfig.java # Configuration Kafka réactive (À MODIFIER)
│ ├── model/
│ │ └── Message.java # Modèle de message (NE PAS MODIFIER)
│ └── service/
│ └── MessageProcessorService.java # Service réactif (À TRANSFORMER)
└── src/main/resources/
└── application.yml # Configuration (À ADAPTER)
# Linux/Mac
./setup.sh
# Windows
setup.cmd
# Accéder à AKHQ pour voir les topics
# http://localhost:8090mvn clean spring-boot:run# Linux/Mac
./scripts/send-message.sh
# Windows
.\scripts\send-message.cmdVous devriez voir dans les logs :
- Le message reçu du topic
input-topic - Le traitement du message
- L'ACK envoyé au topic
output-topic
Vous pouvez aussi consulter AKHQ (http://localhost:8090) pour voir les messages dans les topics.
# Linux/Mac
.cleanup.sh
# Windows
cleanup.cmd- Correction fonctionnelle : L'application fonctionne comme attendu
- Qualité du code : Code propre, lisible et maintenable
- Configuration Virtual Threads : Bonne compréhension et mise en œuvre
- Gestion des erreurs : Erreurs gérées correctement
- Documentation : Code commenté et compréhensible
1h30 - 2h00
Bon courage ! 🚀