You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A production-grade microservice that aggregates user data from external APIs with enterprise patterns including circuit breakers, caching, comprehensive observability, and reactive support.
Features
Modern Stack: Java 21, Spring Boot 3.4, WebClient (reactive HTTP client)
Resilience Patterns: Circuit breaker, retry, and timeout via Resilience4j
Caching: In-memory caching with Caffeine for improved performance
Observability: Micrometer metrics, Prometheus integration, structured logging with correlation IDs
API Documentation: OpenAPI 3.0 with Swagger UI
Containerization: Multi-stage Dockerfile, Docker Compose with optional monitoring stack
Testing: Comprehensive unit tests, integration tests with WireMock, architecture tests with ArchUnit
CI/CD: GitHub Actions pipeline with security scanning
# Clone the repository
git clone https://github.com/welt/user-data-aggregator.git
cd user-data-aggregator
# Build the application
./mvnw clean package
# Run the application
./mvnw spring-boot:run
# Or run the JAR directly
java -jar target/user-data-aggregator-2.0.0.jar
The application will start at http://localhost:8080.
Running with Docker
# Build and run with Docker Compose
docker-compose up --build
# With monitoring stack (Prometheus + Grafana)
docker-compose --profile monitoring up --build
# Run all tests
./mvnw clean verify
# Run unit tests only
./mvnw test# Run integration tests only
./mvnw verify -DskipUnitTests
# Generate coverage report
./mvnw test jacoco:report
# Report available at: target/site/jacoco/index.html
A production-grade microservice that aggregates user data from external APIs with enterprise patterns including circuit breakers, caching, comprehensive observability, and reactive support.