core/
Penjelasan singkat: Folder core berisi fasilitas framework-level yang dipakai lintas modul. Jangan tempatkan business logic domain di sini. Core menyediakan building block seperti:
- Event bus / dispatcher
- Global middleware (request-id, correlation id)
- Global exception filters
- Logger (pino wrapper)
- Queue foundation (struktur jobs/workers/processors)
Contoh file yang ada di folder ini:
- src/core/events/event.interface.ts
- src/core/events/event-publisher.ts
- src/core/logger/logger.service.ts
- src/core/middleware/request-id.middleware.ts
- src/core/exceptions/http-exception.filter.ts
- src/core/queue/*
Panduan singkat:
- Semua event domain didefinisikan di core/events. Module boleh publish/subscribe.
- Logger tersedia sebagai utilitas global (injectable or exported instance).
- Queue hanya menyediakan pondasi; integrasi spesifik (BullMQ, Redis) dilakukan pada fase infrastructure atau worker.