Event Loop Node.js — vì sao API async vẫn chặn cả server
Event loop Node.js chạy theo từng phase; một đoạn code đồng bộ cũng đủ chặn cả server. Cách đo lag và cách sửa.
THE ENGINEERING JOURNAL
Các bài viết về backend.
Event loop Node.js chạy theo từng phase; một đoạn code đồng bộ cũng đủ chặn cả server. Cách đo lag và cách sửa.
Channel<T> trong .NET: hàng đợi producer/consumer ngay trong process, backpressure bằng bounded channel và cách shutdown không mất job.
Context trong Go giúp hủy request đúng lúc, nhưng dùng sai thì leak goroutine và timer. Pitfall thực tế và checklist trước khi merge.
unwrap() trong Rust tiện nhưng dễ làm sập service. Cách dùng Result, dấu ? và anyhow để lỗi có ngữ cảnh mà code vẫn gọn.
Streams trong Node.js: backpressure, async iteration và pipeline() — đọc file vài GB mà RAM vẫn phẳng lì, kèm code thật.
HttpClient trong .NET: vì sao new mỗi request gây SocketException, cách dùng IHttpClientFactory và những cái bẫy hay gặp khi gọi API.
OFFSET càng sâu càng chậm vì DB vẫn phải quét qua từng dòng. Keyset/cursor pagination chỉ tốn một lần index seek — kèm code Go và SQL thật.
Hướng dẫn dùng Idempotency-Key + unique constraint để API retry an toàn, không ghi trùng order hay thanh toán 2 lần — kèm code Go + PostgreSQL.
Event-driven architecture giúp hệ thống decouple và scale mượt mà. Học event, event bus, outbox pattern cùng kinh nghiệm thực chiến.
Idempotency key giúp API xử lý an toàn khi client retry: trùng request vẫn trả kết quả cũ, không bao giờ trừ tiền 2 lần.