Kỹ thuật

NestJS microservices không phình overhead

Khi nào tách service, cách nối Redis queue và layout Docker giữ deploy đơn giản, ít biến cố.

11 phút đọc2.7k lượt xem

Microservices là công cụ scale, không phải kiến trúc mặc định. Chúng tôi tách app NestJS khi team, nhịp deploy hoặc failure domain thực sự khác nhau — không phải vì sơ đồ trông gọn hơn.

Queue Bull dùng Redis xử lý tác vụ async không nên chặn HTTP response: email, webhook, sinh báo cáo. Mỗi worker có container riêng với memory giới hạn để poison job không thể kéo sập tầng API.

Contract dùng chung nằm trong package versioned — DTO, event schema và OpenAPI stub — để service không lệch im lặng giữa các repo.

Layout Docker Compose tách API, worker và Redis với health check rõ ràng. Deploy vẫn nhàm chán — và đó chính là mục tiêu.

Khi sự cố xảy ra, bounded context với ownership rõ ràng rút ngắn mean time to resolution hiệu quả hơn bất kỳ dashboard orchestration nào.

Thêm trong Kỹ thuật