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. 19 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 đó.
From Static Rate Limiting to Adaptive Traffic Management in Airbnb's Key-Value Store
Mussel là kho key-value multi-tenant cho dữ liệu dẫn xuất. Mọi lượt tra cứu (search, hỗ trợ khách...) cuối cùng đều chạm vào nó. Mussel là một fleet dispatcher stateless (pod Kubernetes) đứng trước storage.
Migrating Etsy's database sharding to Vitess
Etsy shard MySQL từ khoảng 2010: ~1.000 bảng trên ~1.000 shard, hơn 425 TB, ~1,7 triệu request/giây (2026).
Migrating Data Ingestion Systems at Meta Scale
Mỗi ngày, hệ ingestion của Meta cào tăng dần vài petabyte dữ liệu social graph từ MySQL (một trong những cụm MySQL lớn nhất thế giới) vào data warehouse để phục vụ analytics và training model.
Enabling the next-generation trait solver on nightly
Sau gần 4 năm, trait solver thế hệ mới sắp ổn định. Theo đội Rust, đây là thay đổi đơn lẻ lớn nhất của compiler kể từ bản đầu: thay toàn bộ cách chứng minh where-clause, chuẩn hoá associated type... Lợi ích chính nằm ở…
We replaced Redis with MySQL for inventory reservations, and it scaled
Giữ hàng chống bán quá số lượng (oversell protection):
Building a data plane from scratch: Stripe's own high-performance distributed proxy
Mục tiêu độ tin cậy 99,9995% cho request thanh toán; service mesh nội bộ xử lý hàng triệu request/giây giữa hàng nghìn service (2026). Gần 10 năm dùng Envoy làm data plane.
How Stripe uses graph search and state machines to auto-remediate a global database fleet
Document Database của Stripe: khoảng 2.000 shard MongoDB, hơn 40 kiểu bố trí shard (từ tối ưu chi phí tới HA cho khôi phục thảm hoạ). Năm 2025 xử lý 1,9 nghìn tỷ USD thanh toán.
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.
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…
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.
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.
From Event-Driven Chaos to a Blazingly Fast Serving API
2016: Zalando dựng microservices với các CRUD API riêng cho từng phần dữ liệu sản phẩm. Mỗi sản phẩm hoàn chỉnh được phát thành event; ai cần dữ liệu thì phải "subscribe stream, replay từ đầu, tự dựng kho riêng". Không…
Scaling Etsy Payments with Vitess: Part 1 – The Data Model
Cuối 2020, hai database thanh toán đã ở cấu hình máy cao nhất của Google Cloud, không scale dọc được nữa; tăng đột biến có thể gây chậm hoặc mất giao dịch.
Scaling Etsy Payments with Vitess: Part 2 – The "Seamless" Migration
Dữ liệu thanh toán phải chia lại vào 40 shard mới, kiểm đủ, rồi chuyển đọc/ghi khỏi DB production đang chạy, trên đường thanh toán của cả Etsy.com.
Scaling Etsy Payments with Vitess: Part 3 – Reducing Cutover Risk
Tác giả ở đội Data Access Platform (giữ ORM nội bộ của Etsy; đã upstream hơn 30 patch vào Vitess và giữ một fork nội bộ). Vai trò: đảm bảo query do ORM sinh ra tương thích vindex và cấu hình Vitess giữ đúng đảm bảo dữ…
Increasing Magic Pocket write throughput by removing our SSD cache disks
2017: Magic Pocket dùng ổ SMR (mật độ cao, nhưng nổi tiếng chậm khi ghi ngẫu nhiên). Mọi lượt ghi trực tiếp đi vào SSD làm write-back cache, ack ngay, rồi một tiến trình nền dồn xuống SMR thành ghi tuần tự.
Sparkplug — a non-optimizing JavaScript compiler
Từ 2016 V8 thôi theo benchmark tổng hợp (Octane) để đo hiệu năng thực tế; với phiên ngắn (tải trang web, công cụ dòng lệnh) phần lớn thời gian trôi qua trước khi compiler tối ưu TurboFan kịp chạy. Họ đã làm parser,…
A new Protocol Buffers generator for Go
Mọi giao tiếp giữa các thành phần của Vitess đi qua gRPC, mọi message là Protobuf. Năm 2020 Google ra Go Protobuf APIv2, không tương thích APIv1. Vitess không vội nâng: việc lớn, không có lợi ích trực tiếp (không dùng…
Taming architecture complexity in V8 — the CodeStubAssembler
Builtin là các hàm có sẵn trong mọi chương trình JavaScript (Array.prototype....). V8 viết chúng theo hai cách, cả hai đều có giá: