Trigger.dev
Mạch tiến hoá
Nền tảng background job chạy trên Postgres. Năm 2024 vacuum bị chặn vì xmin horizon kẹt làm bảng queue (Graphile Worker) đầy dead tuple và CPU 99%; failover mới gỡ được Trigger.dev 2024. Năm 2026, để nâng cấp cụm Aurora 56 TB mà không downtime, họ để dữ liệu nguội ở lại, đưa run mới và control plane sang PlanetScale, định tuyến theo ID Trigger.dev 2026. Năm 2026 có hai postmortem: ClickHouse managed tự nâng cấp làm runs list và log suy giảm sáu tiếng (đường thực thi không bị ảnh hưởng) Trigger.dev 2026, và một tính năng mới làm lộ bug sync khiến biến môi trường bị xoá Trigger.dev 2026. Năm 2025 họ dựng realtime bằng chính WAL của Postgres (replication slot qua ElectricSQL) và long poll thay vì WebSocket Trigger.dev 2025. Cũng năm 2026, broker warm start chuyển từ Node.js sang Bun sau bốn vòng profile, gấp 5 lần throughput, kèm một memory leak chỉ có ở mô hình HTTP của Bun Trigger.dev 2026.
Timeline
Năm = năm sự kiện theo bài (có thể sớm hơn năm đăng bài).
| Năm | Giai đoạn | Thay đổi | Nguồn |
|---|---|---|---|
| 2024 | 2. Tăng trưởng | Sự cố CPU 99%: dead tuple trong queue trên Postgres, vacuum kẹt; failover dưới 60 giây. | Trigger.dev 2024 |
| 2025 | 3. Quy mô lớn | Realtime: replication slot Postgres qua ElectricSQL + long poll thay WebSocket; JWT có scope; rate limit Redis Lua; 20.000 cập nhật/giây. | Trigger.dev 2025 |
| 2026 | 3. Quy mô lớn | 56 TB, 250 GB/ngày: tách nóng/lạnh, ID mới định tuyến, PgBouncer cutover (lần 1 thất bại, lần 2 thành công). | Trigger.dev 2026 |
| 2026 | 3. Quy mô lớn | Sự cố ClickHouse: nâng cấp managed + giới hạn merge hard-code; tách instance đọc, cảnh báo số part. | Trigger.dev 2026 |
| 2026 | 3. Quy mô lớn | Sync Vercel ghi đè biến môi trường bằng chuỗi rỗng (121 tổ chức); khôi phục từ bản sao DB. | Trigger.dev 2026 |
| 2026 | 3. Quy mô lớn | Broker warm start Node.js → Bun: bỏ SQLite trong RAM, dọn đường nóng, binary biên dịch; 5 lần throughput; leak do Promise<Response> không settle. | Trigger.dev 2026 |
Concept liên quan
- Chọn database theo workload
- Deploy và release an toàn
- Đổi ngôn ngữ và runtime
- Event-driven, message queue và Kafka
- Giao dịch phân tán và nhất quán xuyên service
- Load shedding, rate limit và backpressure
- Migration không downtime
- Realtime và fan-out
- Scale dọc trước khi scale ngang
- Sharding và tách database
- Sự cố và postmortem