A modular and scalable billing system built using Spring Boot and Spring Cloud, following the Microservices Architecture. This project demonstrates how to create a production-ready backend platform that includes customer management, product catalog, invoicing, authentication, and secure communication between services.
- π Authentication & Authorization with JWT and OAuth2
- π₯ Customer Management microservice
- π¦ Product Management microservice
- π§Ύ Invoice & Billing microservice
- π API Gateway (Spring Cloud Gateway)
- π Service Discovery (Eureka)
- βοΈ Centralized Configuration (Spring Cloud Config)
- π¬ Async Messaging using RabbitMQ
- π§ Caching with Redis
- π Monitoring with Prometheus and Grafana
- π¦ Dockerized and Kubernetes-ready
A microservices-based system using RESTful communication, event-driven messaging, and cloud-native principles.
Planned Components:
auth-service: Manages user registration, login, and role-based access.customer-service: CRUD operations for customers.product-service: Product catalog with pricing and availability.billing-service: Invoice generation and billing logic.api-gateway: Central entry point and request router.discovery-service: Service registration and discovery using Eureka.config-service: Centralized configuration management.common-lib: Shared DTOs, utilities, and exceptions.
π Detailed architecture diagram coming soon...
- Java 21
- Spring Boot 3
- Spring Cloud
- Spring Security + OAuth2 + JWT
- PostgreSQL / MySQL
- Redis
- RabbitMQ / Kafka (Optional)
- Docker & Docker Compose
- Kubernetes (K8s)
- Prometheus + Grafana
The easiest way to start is using Docker Compose. Detailed instructions will be added once core services are implemented.
docker-compose up --build