Skip to main content

Microservices

Service Boundaries

Each service owns a bounded context with its own database.

Boundary Rules

  1. No cross-service database access
  2. Services communicate via REST APIs or Kafka events
  3. Each service has independent deployment lifecycle
  4. 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