System Design 2/30: CQRS, CDC và ClickHouse cho dashboard realtime


Từ một PostgreSQL monolith quá tải đến read model realtime: CQRS, read replica, ACID, Outbox, Debezium, Kafka, ClickHouse và cách chọn BigQuery, Snowflake, Cassandra.…
Read more ⟶

System Design 1/30: khi mobile app gọi quá nhiều backend service


Phân tích bài Daily.dev về mobile app bị coupling với nhiều backend service: API Gateway, BFF, Load Balancer hay GraphQL Federation?…
Read more ⟶

MFA Cho Developer: Vì Sao Cần, Hoạt Động Thế Nào, Implement Ra Sao


Hướng dẫn MFA tập trung vào thực tế triển khai: user gặp case gì, MFA chặn rủi ro nào, login/enrollment flow, TOTP, WebAuthn, recovery, session và audit.…
Read more ⟶

Auto-Increment, UUIDv4 và UUIDv7: Chọn Primary Key Sao Cho Database Không Khóc?


Auto-increment rất nhanh nhưng dễ đoán và khó phân tán. UUIDv4 sinh ở đâu cũng được nhưng làm B-tree index phân mảnh. UUIDv7 là lựa chọn cân bằng hơn: có thứ tự theo thời gian như integer, nhưng vẫn có randomness như UUID.…
Read more ⟶

7 Sai Lầm Phổ Biến Nhất Khi Đánh Index Trong Database Mà Developer Thường Mắc Phải


Index là con dao hai lưỡi — đánh đúng thì query nhanh như tên bắn, đánh sai thì INSERT/UPDATE cũng chậm. Đây là 7 sai lầm phổ biến nhất mà backend developer thường gặp khi đánh index.…
Read more ⟶

Opaque Token - Everything You Need To Know


Opaque token là gì, cách hoạt động, so sánh với JWT, và khi nào nên dùng…
Read more ⟶

Rate Limit từ A đến Z


Rate limit là gì, tại sao cần nó, các thuật toán phổ biến, và cách triển khai thực tế trong hệ thống backend.…
Read more ⟶

Access Token & Refresh Token: Từ Lý Thuyết Đến Production


Những bài học xương máu về access token, refresh token và cách xử lý khi token bị leak
Read more ⟶

React Re-render và React Compiler


Hiểu rõ cơ chế re-render trong React, cách memoization hoạt động, và vì sao React Compiler giúp code sạch hơn mà vẫn tối ưu hiệu năng.…
Read more ⟶

CAP Theorem


CAP trong hệ thống phân tán…
Read more ⟶