VSN-1990/ Add Kafka producer for circuit activation
Add Kafka producer for circuit activation
🎯 Purpose
This MR introduces a new Kafka producer responsible for sending circuit activation/deactivation events (CircuitStatusEvent) to a dedicated Kafka topic.
This allows other services in the ecosystem to react in real time when a circuit becomes active or inactive (e.g., recalculation workflows, synchronization, monitoring, etc.).
🛠 Main Changes
1. Kafka Configuration
A new producer configuration has been added for CircuitStatusEvent:
-
Added
ProducerFactory<String, CircuitStatusEvent> -
Added
KafkaTemplate<String, CircuitStatusEvent>using the qualifiercircuitActivationKafkaTemplate -
Added topic configuration in
application.yml:circuit-activation: circuit-activation
2. TripPlanningProducerService Enhancements
-
Injected the new Kafka template using
@Qualifier("circuitActivationKafkaTemplate") -
Added the new method:
sendCircuitStatusEvent(String circuitId, boolean active)
This method:
- Builds the
CircuitStatusEventobject - Sets the circuit ID and activation status
- Sends the event through the Kafka template
- Logs success or failure of the message delivery
📡 New Functionality
The application can now emit circuit activation events to Kafka whenever a circuit is activated or deactivated. This enables:
- Automatic synchronization with downstream consumers
- Real-time updates across microservices
- Improved system monitoring
- Better traceability of circuit status changes
✔ ️ Outcome
This MR cleanly introduces a new Kafka event stream dedicated to circuit activation. The implementation aligns with existing Kafka producers (trip planning, driver assignment, trip deletion, recalculation), ensuring consistency across the codebase.