Problem
Small and mid-sized clinics typically rely on spreadsheets or legacy systems to manage appointments, records and billing. The goal was to build a modern platform that centralized all clinical operations with enterprise-grade security and real scalability.
Solution
Modular microservices system where each domain (patients, appointments, admissions, billing, providers) runs as an independent service. All services register with Eureka for dynamic discovery. Centralized authentication with RSA-256 signed JWT. Integrated medical assistant via Gemini AI for support queries.
Architecture
- Eureka Service Discovery — services register automatically; no manual IP configuration
- JWT with RSA-256 — asymmetrically signed token; the auth service issues it, each microservice validates without a database
- Multi-database — PostgreSQL for critical transactional data, MySQL where the schema justifies it; Flyway for versioned migrations on both
- Docker Compose — brings up the full stack (services + databases + Eureka dashboard) with a single command
- Spring AI + Gemini — assistant integrated directly into the medical consultation flow
Technical Decisions
RSA-256 was chosen over HMAC-SHA for JWT because in a microservices architecture each service only needs the public key to verify — no shared secrets. Flyway over manual scripts because in a healthcare system schema change traceability is an audit requirement.