Microservices
Service Boundaries
Each service owns a bounded context with its own database.
Boundary Rules
- No cross-service database access
- Services communicate via REST APIs or Kafka events
- Each service has independent deployment lifecycle
- Shared libraries limited to DTOs and utilities (no business logic)
Service Template
Every service follows:
service-name/
├── src/main/java/.../controller/
├── src/main/java/.../service/
├── src/main/java/.../repository/
├── src/main/java/.../domain/
├── src/main/java/.../config/
├── src/main/resources/db/migration/
└── Dockerfile