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. 339 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 đó.
Chaos Testing an Application on AWS
Ứng dụng có đủ unit, integration, performance test nhưng sự cố 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. Sự cố cho thấy lỗ hổng ở test, ở thời điểm…
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.
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à đuôi dài 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ó.
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 hàng đợi ưu tiên giữa ba thành phần (API Optimus, rule engine Plato, lớp serverless Stratum). Yêu cầu:
Lessons Learned From Running Apache Airflow at Scale
Shopify chạy Airflow production hơn hai năm (2022) cho trích xuất dữ liệu, huấn luyện model, bảo trì bảng Iceberg, mô hình hoá DBT; Airflow 2.2 trên Kubernetes, Celery executor, MySQL 8.
Caching Without Marshal Part 1: Marshal from the Inside Out
Mọi loại cache của Rails (trang, partial, query, low-level) dùng chung read/write trên Rails.cache, và mọi backend (monolith lõi của Shopify dùng Memcached) đều serialize bằng Marshal.dump/Marshal.load. Hướng dẫn Rails…
Caching Without Marshal Part 2: The Path to MessagePack
MessagePack từ chối object lạ: chỉ mã hoá kiểu cơ bản và extension type đã đăng ký; object khác ném NoMethodError có tham chiếu tới object. Đó là điểm để log xem thứ gì đang bị đưa vào cache.
Building Self-driving Kafka clusters using open source components
Kafka ở Slack là xương sống của Job Queue (), pipeline log, trace, billing, analytics. Năm 2018 mỗi team tự chạy cụm Kafka riêng: nhiều phiên bản, lặp công sức.
How We Built Infrastructure to Run User Forecasts at Spotify
Forecast số người dùng theo thị trường là một trong các chỉ số sức khoẻ kinh doanh được dùng nhiều nhất, khi Spotify mở rộng ra hơn 180 nước. Trước đó việc tune hyperparameter chạy trên một máy, mất vài tháng.
Stack under attack: what we learned about handling DDoS attacks
Trong vài tháng trước 5/2022, Stack Overflow liên tục bị DDoS theo hai kiểu: tầng ứng dụng nhắm vào API, và dồn lưu lượng nhắm vào site chính. Đến lúc viết bài, nhiều đợt chỉ còn thấy trong log và dashboard.
Migrating millions of lines of code to TypeScript
Stripe làm front-end lớn từ 2012; năm 2016 dùng sớm Flow (type checker của Meta). Engineer khổ với Flow: tốn bộ nhớ tới mức treo laptop, tích hợp editor chậm và không ổn định; TypeScript thành yêu cầu hàng đầu. Cuối…
How we built the Tinder API Gateway
Tinder có hơn 500 microservice (2022) nói chuyện với nhau qua service mesh (Envoy); dùng ở 190 quốc gia, nhận cả traffic thật lẫn traffic của kẻ xấu.
VTOrc: Vitess-native Orchestrator
Orchestrator là công cụ phát hiện và sửa lỗi cho MySQL với gần như mọi topology (kể cả replication nhiều tầng). Vitess từng tích hợp với nó từ bên ngoài, nhưng phần tích hợp cồng kềnh và từng gây bug.
Code Verify: verifying code authenticity on WhatsApp Web
Sau multi-device (), nhiều người dùng WhatsApp thẳng trên trình duyệt.
How We Built a Cross-Region Caching Library
Wix (2022): hơn 500 tỷ HTTP request và 30 tỷ event Kafka mỗi ngày, hơn 2.500 microservice ở nhiều data center.
Kafka on PaaSTA: Running Kafka on Kubernetes at Yelp (Part 2 - Migration)
Chuyển các cụm Kafka đang chạy từ EC2 sang Kubernetes (PaaSTA) mà producer và consumer không bị gián đoạn. Ba thành phần phải thay: