Claims Processing System
A Spring Boot claims workflow built around controlled state transitions, secure role boundaries, idempotent operations, caching, and asynchronous status processing.
- Java
- Spring Boot
- PostgreSQL
- Flyway
- Spring Security
- JWT
- Redis
- Apache Kafka
- JUnit 5
- Mockito
- Testcontainers
- Docker
- GitHub Actions
Claims processing flow
- Claim request — JWT-authenticated REST request
- Spring Security — JWT role-based access control
- Claims service — Spring Boot REST API
- Lifecycle rules — Controlled state transitions and idempotency
- PostgreSQL — Claims data managed with Flyway
- Redis — Claim-read cache · linked to Claims service
- Apache Kafka — Asynchronous status processing
- Status processor — Consumes asynchronous status work
- Audit history — Records claim changes
Overview
The system models claim work as controlled lifecycle transitions behind JWT role-based access control.
Architecture
Spring Boot and PostgreSQL form the core request path, with Flyway managing database changes, Redis supporting claim reads, and Kafka handling asynchronous status processing.
Decisions
Keep lifecycle transitions explicit, make operations idempotent, and retain audit history for claim changes.
Implementation
The implementation combines Spring Security, JWT, Redis caching, Kafka processing, and PostgreSQL persistence.
Measured outcomes
In benchmark conditions, p95 claim-read latency improved by about 18–24% with Redis across 100K claims.
A reporting query moved from 58.3 ms to 10.2 ms, an approximately 82.5% reduction.
Testing
JUnit 5, Mockito, and Testcontainers support integration testing, with Docker and GitHub Actions used for delivery and CI.