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. 157 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 đó.
Reducing local dev time by 83%: Why we migrated off Next.js
Inngest từng chuyển từ Vite sang Next.js "trong chưa tới một ngày", dùng App Router từ bản beta và React Server Components (RSC) với lời hứa bỏ được màn hình trống và network waterfall của SPA.
Single-Store Vector Index: Architecture and Memory Efficiency
Memgraph là graph DB trong bộ nhớ. Vector search ở quy mô hàng triệu node với embedding nhiều chiều làm RAM thành nút thắt.
From Events to Insights: Memgraph Production Telemetry Stack with AWS, ClickHouse, and Grafana
Memgraph (graph database) chạy ở nhiều môi trường, từ máy dev tới production lớn. Cách làm đơn giản lúc đầu không còn đủ khi lượng, độ đa dạng và tầm quan trọng của telemetry tăng; họ cần nạp nhanh, giữ lâu, phân tích…
Anatomy of a (Postgres) search engine
B-tree sắp toàn bộ giá trị cột nên tìm được theo giá trị, khoảng, tiền tố, nhưng vô dụng với chuỗi ở giữa; LIKE '%x%' quét mọi dòng. Công cụ đúng là inverted index.
Moving Railway's Frontend Off Next.js
Next.js đưa railway.com từ số 0 tới hàng triệu user mỗi tháng, nhưng build frontend vượt 10 phút (riêng Next.js 6 phút) với một team ship nhiều lần mỗi ngày. App chủ yếu chạy phía client (dashboard có trạng thái, canvas…
GitHub Actions leaking secrets when Miri output is cached
GitHub Actions cho cache thư mục giữa các lần chạy. Cấu hình thường gặp: CI trên main được ghi cache, PR chỉ được đọc (để chống đầu độc cache). Dự án Rust hay cache target/ và binary từ cargo install để CI nhanh hơn.
The Real Cost of a Single Insert in Postgres
Bảng time-series devicemetrics với 3 index (khiêm tốn cho loại bảng này), mỗi dòng dữ liệu khoảng 40 byte.
Knowing When Your Composite Index Earns Its Write Cost
Index thường được thêm trong lúc xử lý sự cố và không ai quay lại kiểm tra. EXPLAIN cho biết index tiết kiệm bao nhiêu (đến từng buffer) nhưng không cho biết mỗi insert tốn thêm bao nhiêu: lợi ích có con số, chi phí chỉ…
Sizing Your IIoT Table Before You Deploy
Một bản đo cảm biến là 20 byte (timestamp, tag ID, float), nhưng nằm trong một bảng truy vấn được thì tốn 95,6 byte, nên dự án tính 12 TB thành 60 TB. Theo Tiger Data, pilot 50 cảm biến nói rất ít về nhà máy 10.000 tag…
TimescaleDB to ClickHouse replication: Use cases, features, and how we built it
Connector Postgres CDC của ClickPipes sao chép liên tục từ Postgres sang ClickHouse Cloud, dùng cho cả migrate một lần lẫn replicate liên tục. Bài này mở rộng sang TimescaleDB (extension của Postgres cho time-series).
A Smarter Way to Deploy Data Pipelines
Gần 20 team dữ liệu của Doximity dùng Airflow điều phối hơn 900 DAG đang chạy, hàng chục lần cập nhật mỗi ngày (2025). Airflow chạy trên EC2 bằng Docker Compose, dự định chuyển sang EKS.
Litestream Revamped: SQLite Replication
2020, Litestream: chạy cạnh ứng dụng SQLite mà ứng dụng không cần biết; giữ một transaction đọc dài để chặn checkpoint WAL, dựng "shadow WAL" và đẩy liên tục các trang WAL lên object storage tương thích S3. Mất server…
Postgres as Your Platform: Building Event-Driven Systems with Schema Changes
Theo Neon, đội platform thường dựng giàn giáo quanh database (message queue để phát thay đổi, cron đồng bộ schema, webhook báo hệ phía sau). Postgres đã có sẵn đủ thứ để thay đổi schema thành sự kiện: DDL là transaction…
crates.io security incident: improperly stored session cookies
Đội crates.io phát hiện giá trị cookie cargosession (giá trị đã ký, định danh user đang đăng nhập, đủ để giả danh user đó) bị gửi kèm payload sự kiện lỗi lên dịch vụ giám sát lỗi Sentry mỗi khi backend gặp lỗi.
Automating Periodic Data Transfer from an Operational Database to a Data Warehouse
Chạy truy vấn phân tích nặng trên DB vận hành gây chậm, thậm chí sự cố; chuyển dữ liệu sang data warehouse còn cho phép giữ dữ liệu ngắn hơn ở DB production.
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…
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.
Globally Distributed Object Storage with Tigris
Upload file trong ứng dụng full-stack thì dễ; khó là giữ file để tải lại về sau, nên mọi người dùng object storage kiểu S3. Khách của Fly.io liên tục đòi có nó.
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…
Announcing High Availability for Render PostgreSQL
Render PostgreSQL đã có read replica, backup hằng ngày và point-in-time recovery (PITR). Bài này công bố High Availability (HA) cho gói Pro trở lên.
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.
Rediscovering Transaction Processing From History and First Principles
Năm 1985, Jim Gray đề xuất đo OLTP bằng TPS và gắn TPS với giá thành mỗi transaction. "Transaction" chuẩn của ông không phải SQL transaction mà là DebitCredit: ghi nợ một tài khoản, ghi sổ kép, trả lời terminal. Mỗi…
How we stopped xmin horizon blocking Postgres vacuuming
Trigger.dev (nền tảng chạy background job) dùng Postgres làm DB chính. Queue chính cho run (v3) nằm trên Redis; còn tác vụ nội bộ (lịch, email cảnh báo...) chạy bằng Graphile Worker, một job queue trên chính Postgres,…