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. 625 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 đó.
Maxjourney: Pushing Discord's Limits with a Million+ Online Users in a Single Server
Mỗi server (guild) là một process Elixir làm điểm định tuyến trung tâm; mỗi client kết nối là một process session. Guild fan-out mọi hành động tới session, session đẩy qua websocket.
25% or 6 to 4: The 11/6/23 Authentication Outage
Cluster ScyllaDB scylla-authentication giữ session người dùng, đứng sau service xác thực viết bằng Rust; mọi request API đều qua đây. Topology chuẩn của Discord: "super-disk" RAID gương giữa NVMe local SSD (mất khi…
How Discord Stores Trillions of Messages
Tiếp nối . Cluster cassandra-messages tăng từ 12 node (2017) lên 177 node, hàng nghìn tỷ tin nhắn (đầu 2022).
After four years of SMR storage, here's what we love and what comes next
Theo Dropbox, năm 2018 họ là công ty công nghệ lớn đầu tiên dùng ổ SMR mật độ cao.
Lessons learned: Using a cybersecurity vendor to check for malicious links
Dropbox dùng nhà cung cấp bảo mật bên thứ ba để kiểm virus, malware, phishing; một vendor kiểm các URL nhúng trong tài liệu chia sẻ qua Dropbox và tải lên DocSend.
Similarity Engine at eBay
eBay (12/2022) có khoảng 134 triệu người dùng và 1,7 tỉ listing đang hoạt động. Tìm kiếm theo từ khoá vấp từ đồng âm, query long tail, ý định người dùng; team CoreAI dựng một engine ANN để tìm listing giống nhau theo…
Introducing Fly Kubernetes
Fly.io chạy container dưới dạng microVM (Firecracker) trên máy tự đặt ở hàng chục region. Lúc đầu dùng Nomad, kèm proxy Anycast tự viết bằng Rust và private network WireGuard/IPv6 trên eBPF.
Structured Logging with slog
Log là nơi đầu tiên người ta tìm khi debug server, nên log nhiều và phải lọc, tìm nhanh. Log có cấu trúc (cặp key-value) phân tích được tin cậy hơn log chữ.
How we improved our iOS CI infrastructure with observability tools
Nâng lên Xcode 13.1 (4/2022) làm UITest trên CI của app iOS (superapp, nhiều team cùng mở merge request mỗi ngày) mất ổn định. Grab gắn công cụ quan sát vào toàn bộ quy trình UITest để thấy từ đầu tới cuối job.
Billing and Payment Platform
Hơn 30 triệu người dùng mỗi ngày (2023), gói Free/Premium/Business; nhiều tiền tệ địa phương (USD, EUR, GBP, INR), nhiều phương thức thanh toán, tích hợp nhiều PSP và orchestrator để giữ tỉ lệ duyệt giao dịch cao.
Modeling Equities Returns: The Linear Case
Ở HRT nhiều team giao dịch tự duy trì model để hiểu rủi ro và hiệu quả của danh mục. Bài giới thiệu factor model: lợi suất của nhiều tài sản được giải thích bằng ít "nhân tố" chung.
Jepsen: MySQL 8.0.34
Định nghĩa isolation của ANSI SQL-92 dựa trên ba hiện tượng P1 (dirty read), P2 (non-repeatable read), P3 (phantom). Từ 1995 (Berenson và cộng sự) đã biết chúng mơ hồ và thiếu: không có P0 (dirty write), P3 không nói…
How LIquid Connects Everything So Our Members Can Do Anything
LIquid () giữ Economic Graph: kết nối giữa member, trường, kỹ năng, công ty, vị trí, việc làm, sự kiện, nhóm. Năm 2023: 270 tỷ cạnh, 2 triệu query/giây, dự kiến gấp đôi trong 18 tháng; hơn 930 triệu member; 99,99%…
How the Miro Developer Platform leverages contract testing
Miro Developer Platform 2.0 (REST API công khai) ra mắt năm trước đó; đội muốn nâng chất lượng và tính nhất quán của API bằng cách làm design-first: thiết kế API (file OpenAPI, OAS) trước khi cài đặt.
Protecting our platform from spikes in usage by reducing load from the Monzo app
Monzo gọi là stampeding herd: rất nhiều người mở app cùng lúc, ví dụ 16h ngày trước ngày lương với tính năng Get Paid Early, hoặc khi gửi push "Year in Monzo".
The Great Re-shard: adding Postgres capacity (again) with zero downtime
Cluster "space shards" lưu toàn bộ nội dung workspace (block, comment, collection), chia theo workspace ID: 32 DB Postgres, mỗi DB chứa 15 logical schema; mỗi workspace nằm trọn trên một shard. Giữa web server và DB là…
Engineering operational excellence, a case of continuous improvement
Nubank (2023) có stack đồng nhất: hàng nghìn service Clojure trên Kafka, Datomic, DynamoDB; app Flutter; pipeline dữ liệu Scala. Engineer sản phẩm vừa làm tính năng vừa lo job nền, tích hợp đối tác, hỗ trợ khách, debug,…
March 20 ChatGPT outage: Here's what happened
OpenAI phải tắt ChatGPT vì một bug khiến một số user thấy tiêu đề lịch sử chat của user khác đang hoạt động, và có thể cả tin nhắn đầu của hội thoại mới.
Executing Cron Scripts Reliably At Scale
Cron chạy chức năng then chốt: nhắc việc đúng giờ, gửi email, dọn DB. Ban đầu là một máy chứa mọi script và một crontab; số script và dữ liệu tăng thì đổi máy to hơn. Một máy nên lỗi cấp phát, xoay vòng hay cấu hình là…
Slack's Migration to a Cellular Architecture
Phần lớn hạ tầng lõi ở nhiều AZ trong một region (us-east-1). Ngày 30/6/2021, một đường network nối một AZ với các AZ khác lỗi chập chờn hai lần; người dùng thấy lỗi dù kiến trúc nhiều AZ lẽ ra che được.
Our Journey Migrating to AWS IMDSv2
Slack (2023) chạy khoảng 60.000 instance EC2 ở 17 region, hàng trăm AWS account (theo môi trường, theo team, đôi khi theo ứng dụng), nhiều team sở hữu. IMDS được dùng nhiều khi cấp phát máy và trong công cụ. Cấp phát…
Fleet Management at Spotify (Part 1): Spotify's Shift to a Fleet-First Mindset
Spotify chia phần mềm thành rất nhiều component nhỏ do từng squad tự thiết kế, build, vận hành (microservice cho mọi loại: service, pipeline dữ liệu, web...). Số component tăng nhanh hơn số kỹ sư.
Fleet Management at Spotify (Part 2): The Path to Declarative Infrastructure
Spotify chuyển từ datacenter riêng lên GCP theo kiểu lift and shift: kiến trúc và quan hệ với hạ tầng gần như giữ nguyên, nên lựa chọn hạ tầng trên cloud rất khác nhau giữa team (tự chạy Cassandra, Kafka, Elasticsearch,…
Fleet Management at Spotify (Part 3): Fleet-wide Refactoring
Polyrepo hàng nghìn repo; phần lớn backend dùng một service framework và bộ thư viện lõi chung, phần lớn pipeline batch dùng Scio. Từ 2021 Spotify đầu tư vào refactor toàn fleet để "repo" không còn là đơn vị công việc,…