Architecture
Tài liệu này mô tả kiến trúc triển khai (implementation view). Yêu cầu hệ thống và thiết kế chi tiết xem docs/requirements/06-SYSTEM-DESIGN.md.
System overview
- Monorepo: NX workspace
- Framework: NestJS
- Style: microservices + API Gateway
- Cross-cutting libs:
libs/shared,libs/database,libs/messaging,libs/cache,libs/observability,libs/config
Services & responsibilities
| Service | Port | Responsibility |
|---|---|---|
api-gateway |
3000 | Entry point, auth, proxy routing, cross-cutting concerns |
user-service |
3001 | Users + profiles |
field-service |
3002 | Field catalog + time slots |
booking-service |
3003 | Booking lifecycle |
payment-service |
3004 | Payment lifecycle |
notification-service |
3005 | Email/notification, async consumers |
Repository layout (convention)
apps/<service>/
src/
config/ # env/config loader
health/ # /health endpoint module
<domain>/ # bounded-context module (controller/service/dto/entities)
libs/
shared/ # DTOs, enums, constants, utils, exceptions
database/ # TypeORM module/config, migrations/seeders
messaging/ # Kafka + BullMQ
cache/ # Redis helpers, distributed lock, rate limit helper
observability/ # logging, tracing, metrics
config/ # env-file, validation, shared config helpers
Communication
- Sync:
api-gatewayproxy HTTP tới services nội bộ. - Async (planned): Kafka topics trong
libs/shared/src/constants/kafka-topics.ts.
API conventions
Xem docs/API.md và requirements: docs/requirements/04-API-SPECIFICATIONS.md.