Consumes loan lifecycle events and handles audit trails, notifications, and aggregate stats.
Java 21, Spring Boot, Spring Kafka
- Local/Docker:
@KafkaListenerpolling fromloan-eventstopic - Cloud: HTTP push via QStash →
POST /internal/events
Switching is controlled by nanolend.consumer-mode property. Both paths use the same handler logic.
Every event is checked against an event_log table before processing. Redelivery is safe.
Failed events route to loan-events-dlq for manual review.