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. 157 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 đó.
Running Cost-Efficient Export Workloads at Uber
Export workload (tuân thủ, quyền riêng tư, xuất dữ liệu vận hành; ví dụ DSAR, yêu cầu của một người xem dữ liệu cá nhân mà công ty giữ): query điểm hoặc predicate hẹp theo rider/driver/courier ID trên bảng giao dịch…
Hybrid Core Allocation: From Overallocation to Reliable Sharing
Odin là hệ điều phối container cho workload có trạng thái của Uber (database chạy trên đĩa local). Trước đó Odin đã chuyển sang cpuset: mỗi workload nhận trọn các core riêng, giảm throttling và độ trễ, nhưng phải cấp…
From Chaos to Control: Addressing Shard Distribution Challenges in M3DB with Subclusters
M3DB là DB time-series phân tán của Uber: dữ liệu chia shard, mỗi shard có RF bản sao; một thuật toán placement quyết định node nào giữ shard nào.
How Uber Executed A JUnit Migration at Massive Scale
Monorepo Java của Uber chạy test bằng JUnit 4: hơn 600.000 test, 15 triệu dòng code. JUnit 4 ngừng phát triển từ 2021; JUnit 5 đã ra hơn tám năm; các bản JUnit sau định bỏ hỗ trợ JUnit 4. Bazel không hỗ trợ sẵn JUnit 5.…
From Monitoring to Observability: Our Ultra-Marathon to a Cloud-Native Platform
Hệ giám sát cũ là một khối thương mại: chắc chắn nhưng chậm, khó mở rộng, phí license định kỳ.
From One Horizontal Scaling Controller to Many: Evolving Uber's Compute Platform
Container Platform của Uber (2026): hơn 100 cụm compute ở data center và cloud (Oracle, Google), khoảng 4.000 service trên 3 triệu core, 1,5 triệu lần khởi động pod mỗi ngày. Up là lớp federation: service owner deploy,…
How Uber Conquered Database Overload: From Static Rate-Limiting to Intelligent Load Management
Docstore (có transaction, CRUD) và Schemaless (tối ưu append) là hai DB phân tán tự làm trên MySQL: hàng nghìn cụm, hàng chục PB, hàng chục triệu request mỗi giây. Kiến trúc chung: query engine stateless (lập kế hoạch,…
Running a Software Factory Efficiently at Uber Scale
AI có mặt ở mọi pha phát triển phần mềm ở Uber (2026): hơn 70% pull request được ghi cho agent chạy local hoặc cloud; engineer đã viết hơn 3.600 agent skill, hơn 30.000 lượt chạy skill mỗi ngày. Ngày càng nhiều phiên do…
Zero-Growth Stack, Real Gains: How Stack Allocation Can Save 10% CPU in Go
Khoảng 65% service của Uber viết bằng Go, hơn 2 triệu core; theo Uber, cải thiện 1% hiệu suất toàn fleet đáng vài triệu USD.
Halving the Time: How Uber Eats Rebuilt Its Search Pipeline
Latency search của Uber Eats đã tăng tới mức không chấp nhận được. Ba nguyên nhân chính: retrieval lấy hàng chục nghìn ứng viên rồi hydrate đầy đủ tất cả trước khi ranking bỏ phần lớn; hydration là một pha nguyên khối…
Hardening EmergencyReparentShard in v25
EmergencyReparentShard (ERS) là failover của Vitess khi primary của shard chết hoặc không liên lạc được. VTOrc dùng ERS để tự xử lý nhiều sự cố. Primary chết thì shard không ghi được, nên càng nhanh càng tốt, nhưng phải…
The Art of Being Lazy(log): Lower Latency and Higher Availability With Delayed Sequencing
WarpStream là Kafka tương thích giao thức, dữ liệu chỉ nằm trên object storage; Agent stateless, không có leader, bất kỳ Agent nào cũng nhận produce cho bất kỳ partition nào. Đổi lại là latency: PUT object storage mất…
Rust at scale: An added layer of security for WhatsApp
WhatsApp mã hoá đầu cuối mặc định cho hơn 3 tỉ người (2026). Mã hoá không chặn được file độc: một ảnh hay video được chế tác có thể khai thác lỗi chưa vá trong hệ điều hành, thư viện của hệ điều hành, hay chính app.
Migrating a Large Flow Monorepo to TypeScript
Đầu 2017, đội Webcore chọn Flow thay vì TypeScript (lúc đó Flow hỗ trợ React và hiệu năng tốt hơn). Vài năm sau TypeScript rõ ràng thắng: nhiều kiểu cho package npm hơn hẳn, ổn định hơn.
Training Orchestrator: Unifying Model Training at Yelp
Yelp đã có feature store cho dữ liệu tái lập được, thư viện training chung cho neural network và gradient-boosted tree, tích hợp Spark, và MLflow cho theo dõi và deploy model; còn thiếu phần ở giữa: cách chuẩn để điều…
From Homegrown to Flink: Migrating a Stateful Ad Event Join at Scale
Mảng quảng cáo (Sponsored Products) phải ghép mỗi lượt xem hoặc click với phiên đấu giá gốc trong cửa sổ 15 phút để tính tiền. Event đến sau 15 phút bị bỏ, nên tỷ lệ ghép là chỉ số sống còn.
Scaling beyond one: How Airbnb evolved its data architecture for a multi-product world
Bản Summer Release (5/2025): Airbnb thiết kế lại app, làm lại Experiences, ra mắt Services. Kho dữ liệu offline (phục vụ phân tích, khoảng 10 năm tuổi, xây quanh Homes) phải đón thêm hai trụ sản phẩm mới.
Technical Secrets of PolarDB: High Availability - Smooth Switchover
Bài test TPC-C có phần kiểm tra high availability: tiêm lỗi node, mất mạng, đo throughput, latency, RTO, RPO.
Redesigning Workers KV for increased availability and faster performance
Workers KV là kho KV toàn cầu: dữ liệu lưu ở storage theo vùng, cache khắp mạng Cloudflare; không chỉ khách hàng dùng mà còn là hạ tầng cho cấu hình, xác thực, phân phối asset của nhiều sản phẩm Cloudflare.
Supercharging Discord Mobile: Our Journey to a Faster App
Desktop dùng React, mobile dùng React Native. Android ban đầu không dùng React Native vì lo hiệu năng; máy Android mạnh lên và engine Hermes làm Discord chuyển Android sang React Native năm 2022, đổi lại khởi động chậm…
Inside the feature store powering real-time AI in Dropbox Dash
Dropbox Dash (tìm kiếm và agent trên tài liệu, chat, nội dung công ty) xếp hạng tài liệu bằng ML theo thời gian thực. Một query kéo ranker chấm nhiều file, mỗi file cần hàng chục feature hành vi và ngữ cảnh, nên một…
Redesigning DuckDB's Sort, Again
Thiết kế 2021 () chạy tốt, nhưng từ đó hash join và hash aggregation cũng được làm cho chạy vượt RAM bằng một layout trang tràn đĩa (spillable) mới tốt hơn. Sort còn dùng cách cũ, nên bốn năm sau họ viết lại sort trên…
Follow Up - Preventing Upgrade Failures from etcd v3.5 to v3.6
etcd lưu thông tin thành viên cụm (membership) ở hai kho: v2store (cũ) và v3store. Ở v3.5, v2store là nguồn sự thật; ở v3.6, v3store là nguồn sự thật.
Counter Service: How we rewrote it in Rust
Phần lớn microservice của Grab viết bằng Go, nằm trong một monorepo. Rust vào dần: vài CLI, rồi một reverse proxy cho model serving (Catwalk). Câu hỏi tiếp theo là ROI của việc viết lại một service Go.