Snapshot 12/06/2026: code khai báo 11 queue names và export 9 worker implementations.
friend_request_queue chưa có worker riêng; likes_events được consume bên trong like worker.Danh sách job
| Queue | Trigger | Worker | Mục đích |
|---|---|---|---|
| email_queue | Auth/circle invitation | email.worker | Verify, forgot-password và invitation email. |
| bloom_queue | Register | bloom.worker | Cập nhật Redis Bloom username/email. |
| pinecone_queue | Create/index post | pine.worker | Mixedbread embedding và Pinecone upsert. |
| like_queue + likes_events | Like event + repeat sync | like.worker | Đồng bộ Redis like state về DB và notification count. |
| notification | Reply/mention/like debounce | notification.worker | Flush grouped notification sau khoảng chờ. |
| message_queue | Message debounce | message.worker | Flush realtime chat notification. |
| evaluation_queue | Circle post/report | evaluate.worker | OpenRouter scoring và report evaluation. |
| delta_hp_queue | Repeat job từ server bootstrap | delta-hp.worker | Điều chỉnh circle HP. |
| auto_remove_ban_queue | Repeat job từ server bootstrap | auto-remove-ban.worker | Gỡ ban đã hết hạn. |
| friend_request_queue | Producer đã khai báo | Chưa có worker riêng | Không nên phụ thuộc cho tới khi có consumer rõ ràng. |
Sequence diagram job nền
Mỗi mũi tên là một lần gọi thật trong kiến trúc route → controller → service → repository/worker.
Error handling
| Job | Khi fail thì sao? | Dead letter queue? |
|---|---|---|
| Job throw nếu render/send mail fail. | Không thấy DLQ riêng. | |
| evaluation | Throw để BullMQ mark failed; report/post quality không cập nhật nếu fail. | Không thấy DLQ riêng. |
| notification | Invalid Redis key bị skip và remove khỏi zset. | Không thấy DLQ riêng. |
| like | Lock tránh trùng sync; parse item lỗi bị bỏ qua. | Không thấy DLQ riêng. |
| delta HP | Catch log error, có thể không fail job. | Không thấy DLQ riêng. |