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. 531 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 9.115 bài thuộc 135 công ty có trang wiki riêng và 897 bài thuộc 261 trang danh sách bài viết (công ty chưa có trang wiki); thành viên xem được toàn bộ danh sách. Cảm ơn những người duy trì các danh sách đó.
An Article to Learn About ByteDance Microservices Middleware CloudWeGo
2014: ByteDance đưa Go vào để giải bài toán đồng thời cao của push service giữ kết nối lâu.
Kitex: Unifying Open Source Practice for a High-Performance RPC Framework
Lịch sử: ByteDance bắt đầu dùng Go năm 2014; năm 2015 dựng service nội bộ với Thrift cho RPC; 2016 ra framework RPC Go đầu tiên Kite, làm nhanh cho giai đoạn tăng trưởng, ít tính trước. Nhu cầu phức tạp dần và số…
Moving e2e testing into production with multi-tenancy for increased speed and reliability
Thời monolith, nhu cầu test end-to-end được đáp ứng bằng sandbox. Sang microservices, chạy hết các service trên một máy không nổi, nên dựng môi trường staging riêng (bản sao production không có PII).
Using Fault Injection Testing to Improve DoorDash Reliability
DoorDash viết backend theo microservice; một request từ app có thể đi qua hàng chục tới hàng trăm service, nên phải xử lý lỗi một phần (một dependency chậm, lỗi, hay vừa deploy kèm bug).
3 Changes to Expand DoorDash's Product Search Beyond Delivery
Search của DoorDash được xây cho đồ ăn: nhà hàng và menu lồng nhau, gắn chặt với hệ thống giao đồ ăn. Khi mở sang tạp hoá, tiện lợi, rượu, đồ thú cưng, dữ liệu thành từng SKU rời với số lượng lớn hơn hẳn, và mỗi ngành…
Taking our Ruby & Kafka stack to the next level
Mọi app Rails ở Doximity nói chuyện với Kafka qua gem nội bộ dox-messaging, vốn bọc ruby-kafka: API thân thiện hơn, ép best practice, mặc định hợp với use case của họ.
Integrating Neo4j Into Your Stack
Doximity là network nghề nghiệp cho bác sĩ; câu hỏi kiểu "hai user nối với nhau thế nào", "bạn cấp 1 hay 2", "đồng nghiệp chung" khó hoặc chậm trên SQL. Họ dùng Neo4j cho đồ thị quan hệ, cạnh ứng dụng Rails.
Deployment At Scale: Dream11's In-House Blue-Green Deployment Platform "OneClick"
Traffic của Dream11 rất biến động (theo trận đấu) và deploy cả trong giờ cao điểm. Cần deploy thường xuyên mà ít lỗi và rollback được.
How We Built Fly Postgres
Fly.io khởi đầu (2019) là nền tảng "edge app" không có lưu trữ bền: dữ liệu thật nằm ở us-east-1, phần chạy ở edge là cache. Khách xin database từ ngày đầu; họ từ chối hơn 300 ngày, có thử Redis dùng chung ("bị nguyền")…
Scaling Our Geo-Search Service For 10x Load
Available Driver Service (ADS) trả lời: "quanh vị trí này, tài xế nào thoả điều kiện?" (ví dụ xe có nước rửa tay). ADS sập thì không phân được tài xế cho đơn.
Chaos Testing an Application on AWS
Ứng dụng có đủ unit, integration, performance test nhưng incident production vẫn đến từ lỗi vận hành: DB hỏng, DNS hỏng, node chết, traffic bất thường, với MTTD/MTTR cao vượt SLO. Incident cho thấy lỗ hổng ở test, ở…
How we store and process millions of orders daily
Grab Order Platform xử lý hàng triệu đơn GrabFood/GrabMart mỗi ngày (2022).
Search architecture revamp
Trước 2021, search của Grab (Food, Mart) chỉ khớp văn bản qua inverted index, xếp hạng bằng trọng số viết cứng (khớp tên merchant luôn ưu tiên, kể cả khi người dùng rõ ràng tìm một món).
Under the Hood of the Grammarly Editor, Part Two: How Suggestions Work
Editor dùng giao thức operational transformation (OT) với định dạng Delta (insert, delete, retain) cho cả văn bản, thay đổi của người dùng và gợi ý từ backend. Backend quét văn bản rồi gửi gợi ý về client.
How HRT Thinks About Data
Mô hình đơn giản nhất của một thuật toán giao dịch: hộp đen nhận dữ liệu, trả quyết định giao dịch. Bên trong hộp mỗi chiến lược một khác, nhưng chung một điều: dữ liệu vào hỏng thì chiến lược hỏng.
In Trading, Machine Learning Benchmarks Don't Track What You Care About
HRT có câu lạc bộ đọc paper hai tuần một lần. Người ngoài hay hỏi họ có đọc paper mới rồi áp dụng ngay không. Theo HRT, hiếm khi: kết quả thực nghiệm trong paper không bao giờ đo trên đúng bài toán của họ; tăng 0,1% độ…
How Instacart Uses Embeddings to Improve Search Relevance
2022: catalog hơn 1 tỉ sản phẩm từ hơn 900 nhà bán lẻ. Query lệch mạnh: dưới 1.000 query phổ biến chiếm hơn 50% traffic, còn lại là long tail từ rất cụ thể tới rất rộng. Với query phổ biến hoặc cụ thể có thể dựa vào…
Near real-time features for near real-time personalization
Pipeline feature thông thường: event Kafka được ETL vào HDFS, job Spark định kỳ tính feature rồi đẩy tới recommender. Trễ từ vài giờ tới vài ngày giữa hành động và lúc recommendation phản ánh nó.
What it's like to work as an embedded microservices SRE
Mercari có Microservices SRE Team mà thành viên được nhúng (embedded) vào từng team sản phẩm một thời gian, kể cả trực on-call ở team đó. Tác giả vào 5/2021; nhúng vào team Item (7–12/2021) rồi team Mercari API (từ…
Argo Rollouts at scale: Bringing Automated Rollbacks to 2,100+ services at Monzo
Monzo (ngân hàng số ở Anh) theo đuổi microservices: hơn 2.100 service, hơn 100 lượt deploy/ngày, hơn 27.000 lượt deploy trong năm 2021.
Scaling our security detection pipeline with Sigma
Kiểm soát bảo mật gồm phòng ngừa (mật khẩu, 2FA) và phát hiện (cảnh báo đăng nhập từ thiết bị lạ); phòng ngừa có thể thất bại nên cần detection rule.
Retrospective and Technical Details on the recent Firefox Outage
Firefox gọi nhiều service nội bộ (update, telemetry, chứng chỉ, crash report) đặt sau load balancer của nhiều cloud. Trên GCP, load balancer có cài đặt HTTP/3 ba trạng thái; Mozilla để "Automatic (default)".
Data Mesh — A Data Movement and Processing Platform @ Netflix
Thế hệ trước là Keystone (pipeline stream) phục vụ tốt nhiều nhu cầu, nhưng có những use case mới chưa phủ. Năm trước (2021), Data Mesh được giới thiệu như một sản phẩm pipeline stream được quản lý hoàn toàn cho CDC của…
Timestone: Netflix's High-Throughput, Low-Latency Priority Queueing System
Năm 2018, khi thiết kế Cosmos thay hệ encode media Reloaded, cần priority queue giữa ba thành phần (API Optimus, rule engine Plato, lớp serverless Stratum). Yêu cầu: