<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on jerry's notes</title><link>https://thangvd2312.github.io/posts/</link><description>Recent content in Posts on jerry's notes</description><generator>Hugo</generator><language>vn-VN</language><lastBuildDate>Mon, 03 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thangvd2312.github.io/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>System Design 2/30: CQRS, CDC và ClickHouse cho dashboard realtime</title><link>https://thangvd2312.github.io/posts/cqrs-cdc-clickhouse-realtime-dashboard/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><guid>https://thangvd2312.github.io/posts/cqrs-cdc-clickhouse-realtime-dashboard/</guid><description>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.</description></item><item><title>System Design 1/30: khi mobile app gọi quá nhiều backend service</title><link>https://thangvd2312.github.io/posts/system-design-api-gateway-mobile-coupling/</link><pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate><guid>https://thangvd2312.github.io/posts/system-design-api-gateway-mobile-coupling/</guid><description>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?</description></item><item><title>MFA Cho Developer: Vì Sao Cần, Hoạt Động Thế Nào, Implement Ra Sao</title><link>https://thangvd2312.github.io/posts/mfa-security-complete-guide/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://thangvd2312.github.io/posts/mfa-security-complete-guide/</guid><description>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.</description></item><item><title>Auto-Increment, UUIDv4 và UUIDv7: Chọn Primary Key Sao Cho Database Không Khóc?</title><link>https://thangvd2312.github.io/posts/uuidv7-auto-increment-uuidv4/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>https://thangvd2312.github.io/posts/uuidv7-auto-increment-uuidv4/</guid><description>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.</description></item><item><title>7 Sai Lầm Phổ Biến Nhất Khi Đánh Index Trong Database Mà Developer Thường Mắc Phải</title><link>https://thangvd2312.github.io/posts/index-database-mistakes/</link><pubDate>Sun, 31 May 2026 00:00:00 +0000</pubDate><guid>https://thangvd2312.github.io/posts/index-database-mistakes/</guid><description>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.</description></item><item><title>Opaque Token - Everything You Need To Know</title><link>https://thangvd2312.github.io/posts/opaque-token/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://thangvd2312.github.io/posts/opaque-token/</guid><description>Opaque token là gì, cách hoạt động, so sánh với JWT, và khi nào nên dùng</description></item><item><title>Rate Limit từ A đến Z</title><link>https://thangvd2312.github.io/posts/rate-limit-tu-a-den-z/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0700</pubDate><guid>https://thangvd2312.github.io/posts/rate-limit-tu-a-den-z/</guid><description>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.</description></item><item><title>Access Token &amp; Refresh Token: Từ Lý Thuyết Đến Production</title><link>https://thangvd2312.github.io/posts/access-token-refresh-token-guide/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><guid>https://thangvd2312.github.io/posts/access-token-refresh-token-guide/</guid><description>&lt;h1 id="access-token--refresh-token-từ-lý-thuyết-đến-production"&gt;Access Token &amp;amp; Refresh Token: Từ Lý Thuyết Đến Production&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Câu chuyện thật:&lt;/strong&gt; Năm 2016, tôi implement authentication cho một fintech startup. Vì không hiểu rõ về refresh token, chúng tôi đã bị data breach khi access token bị leak. Attacker có thể duy trì access &lt;strong&gt;vô thời hạn&lt;/strong&gt; vì refresh token không được lưu trong database. Đó là bài học đắt giá nhất trong sự nghiệp của tôi.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bài viết này chia sẻ những gì tôi đã học được từ &lt;strong&gt;10 năm&lt;/strong&gt; triển khai authentication cho nhiều hệ thống production - không phải lý thuyết sách vở, mà là kinh nghiệm thực tế, bao gồm cả những sai lầm chết người.&lt;/p&gt;</description></item><item><title>React Re-render và React Compiler</title><link>https://thangvd2312.github.io/posts/react-rerender-va-react-compiler/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid>https://thangvd2312.github.io/posts/react-rerender-va-react-compiler/</guid><description>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.</description></item><item><title>CAP Theorem</title><link>https://thangvd2312.github.io/posts/cap-theorem/</link><pubDate>Mon, 10 Mar 2025 07:15:58 +0000</pubDate><guid>https://thangvd2312.github.io/posts/cap-theorem/</guid><description>CAP trong hệ thống phân tán</description></item><item><title>MySQL Binlog và Thứ Tự Hoạt Động Transaction</title><link>https://thangvd2312.github.io/posts/binlog-mysql/</link><pubDate>Mon, 04 Mar 2024 00:00:00 +0000</pubDate><guid>https://thangvd2312.github.io/posts/binlog-mysql/</guid><description>Trong MySQL, Binlog là file ghi lại mọi thay đổi dữ liệu trong DB dưới dạng sự kiện (event). Nó có hai vai trò chính: Replication và Point-in-Time Recovery.</description></item><item><title>Optimistic Lock vs Pessimistic Lock</title><link>https://thangvd2312.github.io/posts/compare-optimistic-pessimistic/</link><pubDate>Wed, 04 Mar 2020 09:47:31 +0700</pubDate><guid>https://thangvd2312.github.io/posts/compare-optimistic-pessimistic/</guid><description>Trong quản lý giao dịch và cạnh tranh truy cập dữ liệu, có hai chiến lược chính để kiểm soát tính nhất quán</description></item></channel></rss>