System Design
This document covers the high-level system design principles and patterns used in iHospita HMS.
Design Principles
1. Multi-Tenancy First
Every component is designed with multi-tenancy in mind:
- Database queries always include
hospitalId - File storage is organized by hospital prefix
- Authentication is scoped to hospital realms
2. Separation of Concerns
The system is divided into focused services:
- HMS - Core hospital operations
- CRM - Customer relationship management
- Payment - Financial operations
- Queue - Scheduling and queue management
- Report - Analytics and reporting
3. API-First Design
All functionality is exposed through well-documented REST APIs:
- Consistent response formats
- Proper HTTP status codes
- Pagination for list endpoints
- Comprehensive error handling
4. Security by Default
Security is built into every layer:
- JWT token validation at gateway
- Role-based access control
- Audit logging for sensitive operations
- Data encryption in transit
Data Flow
User Action → Frontend → Kong Gateway → Backend Service → Database
↓
Keycloak (Auth)
Scalability Considerations
Horizontal Scaling
- Stateless services enable horizontal scaling
- Load balancing via Kong
- Redis for shared session state
Vertical Scaling
- Database connection pooling
- Efficient query optimization
- Caching strategies