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 đó.
Canva incident report: API Gateway outage
Editor của Canva là một SPA, deploy nhiều lần mỗi ngày; mỗi lần có hơn 100 file tĩnh mới lên S3 và được phát qua Cloudflare (tiered cache).
How we built our Internal Data Warehouse at ClickHouse: A year later
Năm 2024 DWH có 19 nguồn nạp theo giờ hoặc theo ngày; mỗi ngày ghi khoảng 6 tỉ dòng, 50 TB chưa nén; đang lưu 470 TB đã nén của hai năm, tăng 23% trong 30 ngày; khoảng 70 user chạy SELECT mỗi tuần (2023: 13 TB nén, 10…
The evolution of SQL-based Observability
Luận điểm từ 2023: observability là một bài toán dữ liệu, nên SQL và hệ OLAP giải được; nén tốt, object storage gần như không giới hạn, không phải lấy mẫu log để tiết kiệm. OpenTelemetry biến việc thu thập thành hàng…
On-Demand Dagger Engines with Argo CD, EKS, and Karpenter
Dagger Engine là thứ chạy pipeline CI (dựa trên BuildKit). Nâng cấp engine tại chỗ dễ gây gián đoạn, nên họ muốn developer tự chọn phiên bản engine trong workflow và phiên bản mới tự có sẵn khi phát hành.
How we built a secure, performant, multi-tenant cloud platform to run untrusted code
Deno Deploy là cloud multi-tenant chạy JavaScript/TypeScript trên V8 isolate, phân tán toàn cầu; Subhosting cho doanh nghiệp chạy code không tin cậy của chính user của họ (edge function của Netlify: hơn 255 triệu…
How Discord Reduced Websocket Traffic by 40%
Client nhận cập nhật realtime qua service "gateway" (Elixir), nén bằng zlib từ cuối 2017 (nhỏ hơn 2–10 lần). Lần thử zstandard năm 2019 (chỉ desktop) tốn RAM quá nên bỏ.
GitHub Enterprise Cloud with data residency: How we built the next evolution of GitHub Enterprise using GitHub
Doanh nghiệp muốn kiểm soát dữ liệu của mình nằm ở vùng địa lý nào. GitHub làm Enterprise Cloud with data residency: namespace riêng trên ghe.com, tách khỏi github.com, chạy trên Azure; bắt đầu từ EU (10/2024). Dự án…
How GitHub uses merge queue to ship hundreds of changes every day
GitHub deploy trước rồi mới merge. Năm 2016, monorepo lớn đã có gần 1.000 PR merge mỗi tháng, nên họ cần gom nhiều PR deploy cùng lúc: train, một PR đặc biệt chứa nhiều PR "hành khách", có một người "lái tàu" điều phối…
Evolving the Go Standard Library with math/rand/v2
Từ Go 1 (3/2012), thư viện chuẩn bị ràng buộc bởi cam kết tương thích. Với math/rand, cam kết còn gồm chuỗi số sinh ra từ một seed: Go 1.2 thử đổi và làm hỏng test của người dùng, nên từ đó output theo seed được coi là…
How we seamlessly migrated high volume real-time streaming traffic with zero data loss and duplication
Grab tách phần đọc và phần ghi của một backend service thành hai service riêng để scale độc lập.
October 2024 queue retrospective
Inngest chạy durable workflow cho khách; lõi là một queue đa tenant có flow control theo key do user đặt. Tháng 10/2024 họ nâng cấp liên tục; kết quả cuối tháng là P95 latency thực thi khoảng 50 ms với hàng chục nghìn…
How we built a queue on top of Kafka
Messaging bất đồng bộ có trong kiến trúc microservices của Monzo từ đầu. Ban đầu dùng NSQ: tiện kiểu queue (xử lý và ack từng message), nhưng không bền, đó là khoảng cách duy nhất tới at-least-once.
Database-per-User Architecture With Isolated Application Environments
Bài trước trong loạt: database-per-user với môi trường ứng dụng dùng chung (một bản ứng dụng nói chuyện với DB riêng của từng khách). Bài này: môi trường ứng dụng cô lập, mỗi khách một bản sao toàn bộ hệ thống.
A brief history of Notion's data catalog
Giai đoạn 1 (không catalog): dữ liệu tăng tự phát, phần lớn ở dạng JSON không cấu trúc, đổ vào công cụ như Amplitude để phân tích nhanh. Hệ quả: kiến thức truyền miệng, tên không thống nhất, không phân biệt event quan…
Diving into Uber's cutting-edge data infrastructure
Uber (2023): hơn 10.000 thành phố, 137 triệu người dùng/tháng, 25 triệu chuyến/ngày. Khách nội bộ của đội Data Infrastructure (vận hành cộng đồng, ML, growth marketing) đều muốn insight từ dữ liệu nhưng khác nhau về độ…
API, ChatGPT & Sora Facing Issues (incident write-up)
11/12/2024, từ 15:16 tới 19:38 (PST), mọi dịch vụ của OpenAI (API, ChatGPT, Sora) suy giảm nặng hoặc ngừng hẳn.
From Fragile to Agile: Automating the fight against Flaky Tests
Project iOS của Reddit có hơn 20.000 test unit/snapshot và 2.500 UI test (2024), tăng nhanh trong hai năm; flaky test tăng theo.
PostgreSQL Stories: A simple query with a big problem
Tháng 2/2024, pipeline deploy staging của Render bị chặn hàng giờ. Production chỉ được deploy sau khi build đã qua staging, nên tắc staging là tắc luôn production.
PostgreSQL Stories: From slow query to fast, via stats
Pipeline deploy staging của Render bị treo vì một query đơn giản chạy hàng giờ: join bảng postgresdbs (khoảng 100 nghìn dòng) với bảng events (khoảng 90 triệu dòng) theo serviceId nằm trong cột JSON data, có LIMIT 1.
FLUX fine-tunes are now fast
Tiếp : bản fine-tune do người dùng train chạy bằng tốc độ model gốc (P50: schnell 0,6 giây, dev 2,8 giây). Lần chạy đầu tốn thêm khoảng 2,5 giây nạp bản đó; sau đó request được định tuyến tới instance đã nạp sẵn.
FLUX is fast and it's open source
Số đo (từ bờ tây Mỹ, client Python): FLUX.1 schnell 512x512, 4 bước: 0,29 giây (P90 0,49); 1024x1024: 0,72 giây; FLUX.1 dev 1024x1024, 28 bước: 3,03 giây (P90 3,90).
Shared network vulnerability disclosure
Replicate chạy code của người dùng trong production, với ba lớp phòng thủ: container, cô lập network, và đảo quyền điều khiển (model nhận lệnh từ dịch vụ "director" chạy cạnh nó; chỉ director được tin để nói chuyện với…
Advancing Our Chef Infrastructure
Slack quản lý hàng chục nghìn instance EC2 (Vitess, worker Kubernetes, nhiều thành phần ứng dụng), đa số Ubuntu, một phần Amazon Linux, cấu hình bằng Chef.
Navigating the Spark 3 and EMR 6 Upgrade Journey at Slack
Data Engineering của Slack (2024): mô hình liên bang hơn 60 cluster EMR phục vụ hơn 40 team, hàng nghìn DAG Airflow. Dữ liệu trên S3, metadata trong Hive Metastore (trên RDS); phần lớn là SQL, một số Scala/PySpark;…