modules/
Penjelasan singkat: Folder modules berisi domain modules. Setiap module merepresentasikan satu domain bisnis dan mengikuti prinsip Clean Architecture dengan folder:
- presentation/ # controllers, dto, response
- application/ # use-cases, commands, queries
- domain/ # entities, value objects, repository interfaces, domain services, events
- infrastructure/ # prisma repositories, adapter implementations
Contoh module: identity
- src/modules/identity/presentation/controllers/users.controller.ts
- src/modules/identity/application/services/get-user.service.ts
- src/modules/identity/domain/entities/user.entity.ts
- src/modules/identity/infrastructure/repositories/user.repository.ts
Panduan singkat:
- Controller tipis: lakukan validasi dan panggil application service.
- Business logic harus berada di application/domain.
- Infrastruktur mengimplementasikan interface domain (dependency inversion).
- Gunakan event untuk komunikasi lintas module bila memungkinkan.