A production outage caused by a fixed-window rate limiter is used to walk through three rate-limiting algorithms (fixed window, token bucket, and GCRA), explaining why synchronized reset boundaries create thundering-herd effects. Covers where limiters should live (edge vs gateway vs application middleware), how per-worker in-memory counters silently multiply your configured limit, how to implement atomic Redis-backed counters correctly (including EXPIRE NX requiring Redis 7.0+), fail-open vs fail-closed tradeoffs when Redis is unreachable, and the updated IETF RateLimit/RateLimit-Policy header draft (revision 11) that replaces the older three-header convention.
Nguồn: https://www.sitepoint.com/python-rate-limiting-the-limiter-that-caused-our-outage. 8 Sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Đang tải bình luận…
Python documentation giờ đã có phiên bản tiếng Persian, giúp cộng đồng người dùng Iran và các nước nói tiếng Persian tiếp cận dễ dàng hơn. Nguyên nhân kỹ thuật là do nỗ lực dịch thuật của cộng đồng, sử dụng công cụ Sphinx và hệ thống tài liệu chính thức của Python. Hệ quả là hàng người dùng ở Iran và các nước lân cận sẽ giảm rào cản ngôn ngữ khi học và sử dụng Python. Điều đáng học là dự án dịch tài liệu open-source cần sự hợp tác từ cộng đồng toàn cầu, không chỉ từ các nước nói tiếng Anh.
Tài liệu Python hiện đã có bằng tiếng Persia giúp lập trình viên tiếp cận kiến thức dễ dàng hơn.
Concurrency control trong hệ thống phân tạp tồn tại hai hình thức khác nhau và hầu hết lỗi …
So sánh chi tiết giữa monolithic và microservices vượt qua lý thuyết, bàn về sự phức tạp trong deployment, sự ảnh hưởng của Conway's Law đến ownership team, khó khăn trong debugging và observability, cũng như thách thức về data consistency, performance và scaling. Bài viết chỉ ra monolithic thực sự phù hợp trong những trường hợp nào, khi nào microservices mang lại hiệu quả, và giới thiệu khái niệm "modular monolith" như giải pháp trung gian. Các lỗi phổ biến như resume-driven development hay distributed monoliths được liệt kê kèm framework thực tế để ra quyết định dựa trên team, domain, delivery, operations và scale. Thông điệp chính là chọn architecture dựa trên vấn đề thực tế chứ không phải sự phức tạp giả định.
Bài viết này giúp lập trình viên hiểu rõ sự cân thực giữa kiến trúc microservices và monolithic, tránh những sai lầm phổ biến và đưa ra quyết định kiến trúc phù hợp dựa trên nhu cầu thực tế.
Gần đây các gói MemTensor phiên bản 0.1.21 và 0.1.23 trên npm cùng MemoryOS 2.0.34 trên PyPI bị phát hiện chứa mã độc "supplychain.local". Mã độc này được chèn vào quá trình build package, cho phép kẻ tấn công chiếm quyền điều khiển hệ thống nạn nhân. Hậu quả là hàng nghìn dự án sử dụng các thư viện này có nguy cơ bị nhiễm malware. Nhà phát triển cần kiểm tra lại các dependencies trong dự án và cập nhật lên phiên bản an toàn để tránh rủi ro bảo mật.
Lập trình viên nên đọc bài này để nhận thức về mối đe dọa an ninh chuỗi cung ứng trong các package npm và PyPI nhằm bảo vệ dự án của mình.
American Express sử dụng kiến trúc cell-based để xử lý giao dịch thanh toán quy mô lớn. Kiến trúc này chia hệ thống thành các cell độc lập, mỗi cell chứa đầy đủ các dịch vụ cần thiết để xử lý một giao dịch. Khi một cell gặp sự cố, các cell khác vẫn có thể tiếp tục hoạt động, đảm bảo hệ thống không bị sập hoàn toàn. Mô hình này giúp American Express đạt độ sẵn sàng cao, với thời gian downtime chỉ vài giây mỗi năm và xử lý hàng triệu giao dịch mỗi ngày. Các lập trình viên học được cách thiết kế hệ thống phân tán có khả năng chịu lỗi bằng cách cô lập sự cố trong một phạm vi nhỏ.
Bài viết này giúp lập trình viên hiểu cách xây dựng hệ thống xử lý giao dịch đáng tin cậy ngay cả khi gặp sự cố.
Bài viết chỉ ra hiện tượng coi số lượng dịch vụ microservices như dấu hiệu của kinh nghiệm cao trong ngành phần mềm. Tac giả lấy ví dụ về một dự án có tới 37 dịch vụ độc lập, mỗi dịch vụ được triển khai trong container và kết nối qua API REST/gRPC. Nguyên nhân kỹ thuật là xu hướng tách hệ thống quá sớm mà không xác định rõ ranh giới nghiệp vụ, dẫn đến sự dư thừa trong quản lý cấu hình, giám sát và truy vết lỗi. Hệ quả là tăngภาระ vận hành, độ trễ giao tiếp giữa dịch vụ và khó duy trì tính nhất quán dữ liệu, khiến đội ngũ tiêu tốn nhiều thời gian cho DevOps thay vì phát triển tính năng. Bài học là trước khi quyết định chuyển sang microservices, cần đánh giá độ phức tạp miền vấn đề, cân nhắc sử dụng monolith mô-đun hoặc các dịch vụ có kích thước vừa phải, và chỉ mở rộng khi có bằng chứng thực tế về nhu cầu mở rộng và đội ngũ có khả năng vận hành.
Bài viết này giúp lập trình viên hiểu rằng kiến trúc microservices không phải là thước đo trình độ kỹ năng hay kinh nghiệm senior thực sự.
Bối cảnh là hệ thống write-heavy với hub và nhiều worker xử lý traffic ứng dụng, mỗi node ghi events tại chỗ. Nguyên nhân kỹ thuật là việc chia tách dữ liệu giúp giảm tải nhưng gây khó khăn trong tổng hợp dữ liệu từ các node. Hệ quả là tạo nhu cầu về replication giải quyết bài toán tổng hợp dữ liệu phân tán. Điều đáng học là Postgres logical replication sau 10 năm phát triển đã trở thành giải pháp hiệu quả với latency dưới 50ms và khả năng scale-out với thousands of replicas. Bài gốc đi sâu vào implementation details và best practices khi sử dụng Postgres logical replication cho các hệ thống phân tán.
Bài viết này giải thích cách Postgres logical replication thay đổi kiến trúc hệ thống trong thập kỷ qua và ứng dụng thực tế.
Đọc tin ở đây, luyện code, học theo lộ trình và luyện IELTS trên các sản phẩm anh em — tất cả kết nối với nhau trong hệ sinh thái 8 Sync.
Cổng chính của hệ sinh thái: giới thiệu sản phẩm, blog và bảng giá trọn bộ.
Khám pháHọc theo lộ trình rõ từng chặng: video, quiz chấm tự động, certificate và mentor đang làm nghề.
Xem lộ trình1.000+ bài DSA, đề tiếng Việt, chấm tự động 7 ngôn ngữ — nhiều bài FREE, chạy ngay trên trình duyệt.
Luyện miễn phíChấm bốn kỹ năng IELTS bằng AI, phản hồi chi tiết theo rubric.
Dùng thử miễn phíAI IDE 22 MB cho dev Việt.
Tải miễn phíBộ nhớ tổ chức cho AI agent.
Khám pháAI trực Fanpage, tự sàng lọc lead.
Dùng thử