A cloud-native Java Spring Boot project built with a microservices approach.
The system manages patients, billing, notifications, and authentication, demonstrating real-world distributed systems design.
(Note: This project only contains backend APIs.)
- Patient Service – CRUD operations for patient data
- Billing Service – gRPC-based communication for billing operations
- Notification Service – Kafka-powered async messaging
- Auth Service – JWT-based authentication & role-based access
- Database Integration – PostgreSQL with JPA/Hibernate
- Protobuf + gRPC – inter-service communication
- Kafka Messaging – event-driven communication between services
Below is the high-level system design:
👉 Add your diagram in docs/architecture.png and reference it here:
- Backend: Java 17, Spring Boot, gRPC, JPA
- Database: PostgreSQL
- Messaging: Apache Kafka
- Build Tools: Maven, Docker
- Testing: JUnit, Spring Security Test
- Java 17+
- Maven
- Docker (optional, for running services)
Use placeholders instead of real values 👇
# Patient Service
SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/patientdb
SPRING_DATASOURCE_USERNAME=your_user
SPRING_DATASOURCE_PASSWORD=your_password
SPRING_JPA_HIBERNATE_DDL_AUTO=update
SPRING_KAFKA_BOOTSTRAP_SERVERS=localhost:9092
# Auth Service
SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/authdb
SPRING_DATASOURCE_USERNAME=your_user
SPRING_DATASOURCE_PASSWORD=your_password
---License & Attribution
Portions of this project are derived from Chris Blakely (MIT).
The original copyright and license are included in the LICENSE file.
Additional features and changes (c) 2025 Rishabh Jain.
