Bài tóm tắt
Tóm tắt bằng lời riêng, luôn dẫn về bài gốc. 123 bài (đã lọc). Đọc miễn phí.
Nguồn dữ liệu danh sách bài viết của blog công ty
Danh sách bài trên trang công ty gồm 10.013 bài. Khoảng 73,6% (7.365 bài) do SWE Wiki thu thập thủ công từ kho lưu trữ blog chính chủ của các công ty, kèm ngày đăng. Phần còn lại lấy từ các danh sách công khai trên GitHub: binhnguyennus/awesome-scalability (667), abhivaikar/howtheytest (551), upgundecha/howtheysre (499), eugeneyan/applied-ml (376), Engineer1999/ML-System-Design-Case-Studies (239), upgundecha/howtheyaws (149) và một số danh sách nhỏ khác. Mọi link luôn dẫn về bài gốc trên blog của tác giả; SWE Wiki không sao chép nội dung bài. Hiện 8.979 bài thuộc 133 công ty có trang riêng được hiển thị cho thành viên. Cảm ơn những người duy trì các danh sách đó.
When Bigger Instances Don't Scale
Trước khi hỗ trợ một loại instance mới, ScyllaDB chạy IOTune (công cụ benchmark đĩa đi kèm Seastar) để đo 4 con số: IOPS đọc/ghi và băng thông đọc/ghi. Bốn số này vào io-properties.yaml; IO Scheduler dựng một model của…
Building a Faster C# Driver for ScyllaDB…on our Self-Baked C#-Rust FFI Framework
Hiện đại hoá một codebase driver C khoảng mười năm tuổi (fork của DataStax) bằng cách đặt nó lên lõi Rust driver, theo chiến lược một lõi cho mọi ngôn ngữ (xem phần 1).
The Deceptively Simple Act of Writing to Disk
Sau khi sửa IO Scheduler ở phần 1, IOTune đo ra số scale đẹp theo cỡ máy. Nhưng với workload gần thật, throughput ghi lại giảm khoảng 10% trên các instance có SSD mới, nhanh. Họ đã chờ cải thiện, nên đây là tín hiệu…
Common Performance Pitfalls of Modern Storage I/O
Hai phần trước của series tìm ra hai nguyên nhân làm instance lớn "không scale": hàng đợi công bằng trong IO Scheduler của Seastar tự bóp băng thông còn một phần nhỏ so với thông số, và block size/căn chỉnh của XFS gây…
Snowflake Optima Planning: cross-query performance
Optimizer của Snowflake dựa trên chi phí: ước lượng số dòng của từng operator rồi chọn plan rẻ nhất. Ước lượng sai thì chọn sai thứ tự join hay sai bên build, có khi sinh hàng tỉ dòng trung gian không cần. Tương quan…
Selective Test Execution at Stripe: Fast CI for a 50M-line Ruby monorepo
Monorepo Ruby của Stripe khoảng 50 triệu dòng, khoảng 100.000 file test, 1,2 triệu test unit (2026). Chạy tuần tự hết một lần mất bốn tháng; build chạy trên một dàn worker song song khổng lồ, khoảng 50.000 build mỗi…
Scaling up your microservice testing with Apache Spark, Part 2
Câu hỏi của phần này: dựng harness replay thế nào mà không tạo ra bản thứ hai của service (bản đó sẽ lệch production và cho sự tự tin giả).
Protocol-Aware Deterministic Simulation Testing
TigerBeetle dùng Viewstamped Replication (VSR): liveness là còn phản hồi khi đa số replica sống; safety là các replica thống nhất thứ tự (dẫn tới strict serializability).
A Trillion Transactions
Scale là khả năng sống sót, không chỉ hiệu năng: khó nhất là sống được khi mọi thứ hỏng.
Incident report: Runs list and logs degraded
Trigger.dev tách hai đường: thực thi run (Postgres là nguồn sự thật + Redis cho queue) và giao diện quan sát (runs list, logs, traces) chạy trên ClickHouse. ClickHouse chỉ trả danh sách run ID khớp bộ lọc; chi tiết run…
How Uber Protects Against Retry Storms
Chỉnh cấu hình retry và retry budget giảm được ở mức từng service, nhưng chỉnh tay và không thấy được khuếch đại xuyên service qua chuỗi phụ thuộc sâu và fan-out. Gốc vấn đề: retry không biết ngữ cảnh; kiểm được bao…
Scaling Exact COUNT(DISTINCT) for High-Cardinality Non-Rollup Metrics
Một lớp metric (user hoạt động theo tháng, giữ chân theo quý) phải tính chính xác và là non-rollup: không ghép được từ số theo ngày (một user hoạt động thứ Hai và thứ Tư chỉ tính một lần trong tuần). Theo quý, phải giữ…
Evolution and Scale of Uber's Delivery Search Platform
Phần lớn đơn Uber Eats bắt đầu từ ô tìm kiếm. Khớp từ khoá hỏng với từ đồng nghĩa, lỗi gõ, viết tắt, trộn ngôn ngữ ("pan" là bánh mì tiếng Tây Ban Nha, là cái chảo tiếng Anh). Semantic search mã hoá query và tài liệu…
Taming the ML Firehose: Scaling Feature Consistency
Mục tiêu: feature dùng lúc inference chính là feature dùng để train model kế tiếp. Trước đó hai đường lệch nhau:
Uber's Rate Limiting System
Kiến trúc service của Uber xử lý hàng trăm triệu RPC mỗi giây qua hàng nghìn service. Thời đầu mỗi team tự throttle (trong logic nghiệp vụ, middleware riêng, counter Redis): cấu hình và hành vi khác nhau dù cùng quota;…
Apache Hudi at Uber: Engineering for Trillion-Record-Scale Data Lake Operations
Khoảng 2015, data lake chuẩn của ngành là file, chỉ append, batch. Workload quan trọng của Uber thì khác: dữ liệu thay đổi (vòng đời chuyến, trạng thái đơn, thuộc tính thiết bị), stream có tỉ lệ update cao, và cần xử lý…
How Uber Scaled Data Replication to Move Petabytes Every Day
Data lake của Uber (hơn 350 PB) nằm ở cả on-premises lẫn cloud. HiveSync (dựng từ dự án ReAir của Airbnb) giữ các lake đồng bộ, cả bulk lẫn tăng dần, dùng Distcp của Hadoop (copy phân tán bằng MapReduce) cho bản sao lớn…
Large-Scale Automated Dependency Analysis Across Uber's Service Mesh
Trong kiến trúc microservice của Uber, khi một request lỗi ở service gốc, khó biết phụ thuộc hạ nguồn nào gây ra; không thể trông vào service owner nhớ hết phụ thuộc (nhất là gián tiếp) vì chúng đổi liên tục. Biết phụ…
Introducing uForwarder: The Consumer Proxy for Kafka Async Queuing
Kafka ở Uber xử lý hàng nghìn tỉ message và nhiều PB mỗi ngày. Khoảng ba năm trước bài, Uber dựng Consumer Proxy: một cụm proxy lấy message từ Kafka bằng giao thức nhị phân, đẩy từng message tới consumer service qua…
Building High Throughput Payment Account Processing
Gulfstream, nền tảng thanh toán lõi của Uber: kế toán bút toán kép, tuân thủ SOX, kiến trúc theo job/transaction, hàng triệu giao dịch mỗi ngày, audit trail bất biến bằng UAC (User Account Changelog).
How Upstash Redis Search Works?
Redis lưu và trả dữ liệu nhanh nhưng truy vấn thì khó: sorted set giả lập vài mẫu truy cập, còn lại phải scan. Với Upstash Redis (bền mặc định, hay được dùng làm DB chính), đây là giới hạn lớn. Upstash Redis Search thêm…
Automatic Apache Kafka Migrations With Orbit
Chuyển một cụm Kafka sang WarpStream gồm ba phần: dữ liệu, consumer, producer. Một cụm thường phục vụ nhiều team.
How we're building Scam Alert on WhatsApp
Lừa đảo chuyển từ mạo danh sang social engineering và mồi nhử do AI tạo. Server không đọc được tin (E2EE), nên không thể quét tin ở server.
Learning the language of home buying: Zillow's event-based foundational user behavior model
Hành trình mua nhà dài hàng tháng, không tuyến tính, tín hiệu mạnh (lưu, đặt lịch xem) hiếm còn tín hiệu yếu thì nhiều. Gợi ý dựa trên tóm tắt tĩnh (matrix factorization, embedding gộp, histogram thuộc tính) mất mạch…