How pazzo2005/insurance-project works
Claims Microservices accepts claim submissions and queries through REST, GraphQL, and a browser UI; the claims service persists lifecycle changes and emits shared domain events, which the notification service consumes and exposes as recorded notifications. The README documents local Spring-event and Kafka transports. Sampled code confirms the claims lifecycle, REST/GraphQL delegation, Kafka publishing and consuming, and notification storage/API; local listener wiring and some configuration details are represented only where documented.
Main entry points: ClaimService.java Claim lifecycle · ClaimController.java Claims REST API · EventPublisher.java Event publisher · NotificationStore.java Notification store
Components 19
Claims service
- Claims REST API
claims-service/src/main/java/com/akinluyi/claims/web/ClaimController.java - Claims GraphQL API
claims-service/src/main/java/com/akinluyi/claims/graphql/ClaimGraphqlController.java - API error mapping
claims-service/src/main/java/com/akinluyi/claims/web/GlobalExceptionHandler.java - Claim lifecycle
claims-service/src/main/java/com/akinluyi/claims/service/ClaimService.java - Claim aggregate
claims-service/src/main/java/com/akinluyi/claims/domain/Claim.java - Claim repository
claims-service/src/main/java/com/akinluyi/claims/repository/ClaimRepository.java - Claims database
claims-service/src/main/java/com/akinluyi/claims/domain/Claim.java
Event transport
- Event publisher
claims-service/src/main/java/com/akinluyi/claims/events/EventPublisher.java - Local publisher
claims-service/src/main/java/com/akinluyi/claims/events/LocalEventPublisher.java - Kafka publisher
claims-service/src/main/java/com/akinluyi/claims/events/KafkaEventPublisher.java - Spring event bus
Notification service
- Local event listener
notification-service/src/main/java/com/akinluyi/notifications/listener/LocalEventListener.java - Kafka event listener
notification-service/src/main/java/com/akinluyi/notifications/listener/KafkaEventListener.java - Notification store
notification-service/src/main/java/com/akinluyi/notifications/store/NotificationStore.java - Notifications API
notification-service/src/main/java/com/akinluyi/notifications/web/NotificationController.java
Shared domain
- Claim domain events
common/src/main/java/com/akinluyi/claims/common/event/ClaimEvent.java
Other components
- API client
- Claims browser UI
claims-service/src/main/resources/static/app.js - Kafka broker
Connections 20
- API client → Claims REST API: calls REST
- API client → Claims GraphQL API: queries GraphQL
- Claims browser UI → Claims REST API: calls REST
- Claims REST API → Claim lifecycle: delegates
- Claims GraphQL API → Claim lifecycle: delegates reads
- Claim lifecycle → Claim repository: reads and saves
- Claim repository → Claims database: persists claims
- Claim lifecycle → Claim aggregate: creates and updates
- Claim lifecycle → Event publisher: publishes events
- Event publisher → Local publisher: uses local profile
- Event publisher → Kafka publisher: uses Kafka profile
- Local publisher → Spring event bus: dispatches in process
- Spring event bus → Local event listener: delivers events
- Kafka publisher → Kafka broker: sends events
- Kafka broker → Kafka event listener: delivers events
- Local event listener → Notification store: records notifications
- Kafka event listener → Notification store: records notifications
- Notifications API → Notification store: reads notifications
- API client → Notifications API: gets notifications
- Claims REST API → API error mapping: maps API errors