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. 608 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 đó.
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.
Autoscaling endpoints for LLM inference
Trả tiền theo replica-phút nên phải cân hai kiểu sai: cấp dư (GPU ngồi ở 15% chỉ để chờ đỉnh) và cấp thiếu. Theo bài, LLM serving thoái hoá phi tuyến: replica chạm giới hạn concurrency không "chậm hơn chút" mà bắt đầu…
Canary rollouts: upgrade models in production without downtime
Hệ sinh thái model mở đổi nhanh nên đổi checkpoint hay đổi họ model là việc thường xuyên. Hai cách thường làm đều để con người làm cơ chế an toàn: đổi thẳng (mọi user cùng thấy, p95 tăng gấp đôi thì biết qua dashboard…
Upgrading a 56TB database that's growing at 250GB per day with (nearly) no downtime
Một cụm Aurora Postgres khoảng 56 TB: bảng run 29,4 TB, các bảng liên quan tới run 25,4 TB, dữ liệu control plane (tổ chức, project, billing, deploy) chỉ 1,23 TB. Tăng 250 GB/ngày.
Why we replaced Node.js with Bun for 5x throughput
Firestarter là broker "warm start": giữ hàng nghìn kết nối long-poll HTTP từ run controller đang rảnh; khi có task run, ghép với một controller và gửi payload qua kết nối đang giữ (không cold start). Nằm trên đường gă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…
Incident report: Vercel environment variables cleared during synchronization
Trigger.dev đồng bộ biến môi trường từ Vercel trước mỗi lần build. API của Vercel trả biến loại Sensitive với value: "" vì integration không được đọc giá trị.
How Ansible Automation Powers the Uber Corporate Network at a Global Scale
Mạng văn phòng (Corpnet) của Uber trên sáu châu lục, năm vùng, khoảng 5.000 thiết bị nhiều hãng (switch, gateway, firewall), mỗi văn phòng một tổ hợp phần cứng khác nhau. Ở quy mô này, lỗi link và thiết bị hằng ngày là…
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ữ…
Simplifying Data and Product Integrations with a Data Abstraction Layer
Query dữ liệu thường gắn chặt với cấu trúc và vị trí của dataset ("dùng bảng v2, trước 2025 thì dùng v1, metric đổi tên giữa hai bản"), nên đổi mô hình dữ liệu chậm và khó. Báo cáo cho nhà quảng cáo của Uber Ads là ca…
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:
Accelerating Search and Ingestion with High-Performance gRPC in OpenSearch
Uber đã chuẩn hoá trên OpenSearch cho search và retrieval (ghép tài xế, chống gian lận, gợi ý Uber Eats). Hạ tầng nội bộ nói gRPC + Protobuf, còn OpenSearch chỉ có REST/JSON; các lớp chuyển đổi ở giữa thêm latency, phức…
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ý…
Designing MCP Gateway: Uber's MCP Management Platform
Tích hợp MCP (Model Context Protocol, giao thức để agent gọi tool) ban đầu ở Uber là ad-hoc: agent mạnh lên rõ khi đọc được ngữ cảnh nghiệp vụ trực tiếp, gọi service nội bộ và hành động thay người dùng. Khi hàng trăm…
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…
Zero Sum by Design: 10 Years of Uber's Payments Platform
Gulfstream bắt đầu năm 2016 trong một phòng họp, với một nhóm nhỏ dựng bộ microservice nền; mười năm sau nhiều service đó vẫn chạy. Cùng thời gian, tổng giá trị đặt chỗ hằng năm của Uber từ 50 lên 217 tỉ USD; nền tảng…
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ụ…
Superuser Gateway: Guardrails for Privileged Command Execution
Data platform của Uber dùng GCS, OCI và HDFS. Một nhóm nhỏ engineer thỉnh thoảng cần quyền superuser để chuyển dữ liệu, sửa quyền, dọn đường dẫn hỏng, gỡ sự cố gấp; chính các lệnh đó có bán kính ảnh hưởng lớn nhất (một…
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…
Scaling Verify with Wallet for Identity Verification at Uber
Nền tảng xác minh danh tính dùng chung cho các app của Uber (Uber, Uber Eats, Postmates) đã có quét giấy tờ và chụp selfie. Ví điện thoại (Apple Wallet) giờ chứa giấy tờ số (mDoc, như bằng lái mDL) có nguồn gốc do chính…
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).