
		<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
			<channel>
				<title>TungDaDev&#39;s Blog – stories, insights &amp; ideas</title>
				<link>https://tungdadev.com/blog</link>
				<description>A personal space on the cloud where I document my programming journey, sharing lessons, insights and resources for fellow developers.</description>
				<language>en-us</language>
				<managingEditor>bthanhtung.ite@gmail.com (TungDaDev)</managingEditor>
				<webMaster>bthanhtung.ite@gmail.com (TungDaDev)</webMaster>
				<lastBuildDate>Sat, 01 Aug 2026 00:00:00 GMT</lastBuildDate>
				<atom:link href="https://tungdadev.com/tags/architecture/feed.xml" rel="self" type="application/rss+xml"/>
				
		<item>
			<guid>https://tungdadev.com/blog/cdc-debezium-cache-invalidation</guid>
			<title>change data capture với debezium: giải quyết bài toán cache invalidation &amp; outbox pattern</title>
			<link>https://tungdadev.com/blog/cdc-debezium-cache-invalidation</link>
			<description>Tại sao mô hình Dual-Write (ghi DB rồi ghi Redis) luôn là cái bẫy dẫn đến sai lệch dữ liệu? Khám phá kiến trúc Change Data Capture (CDC) với Debezium, đọc Binlog/WAL và bảo đảm tính nhất quán phân tán với Transactional Outbox Pattern.</description>
			<pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>architecture</category><category>database</category><category>kafka</category><category>redis</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/database-sharding-system-design</guid>
			<title>database sharding &amp; capacity planning: bài học kiến trúc từ hệ thống triệu người dùng</title>
			<link>https://tungdadev.com/blog/database-sharding-system-design</link>
			<description>Khi nào một node SQL đơn lẻ không còn chịu nổi tải? Khám phá quy tắc ước tính dung lượng (Back-of-the-Envelope Estimation), chiến lược chọn Sharding Key, bài toán phân tán giao dịch và case study thực chiến từ các hệ thống tài chính.</description>
			<pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>database</category><category>architecture</category><category>system-design</category><category>java</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/feature-flags-spring-boot-unleash</guid>
			<title>feature flags với unleash trong spring boot: nghệ thuật triển khai không downtime</title>
			<link>https://tungdadev.com/blog/feature-flags-spring-boot-unleash</link>
			<description>Tại sao việc giữ feature branch sống hàng tháng trời là công thức dẫn đến thảm họa merge code? Khám phá Trunk-Based Development và cách quản trị Feature Flags với Unleash trong Spring Boot để Canary Release và A/B Testing an toàn tuyệt đối.</description>
			<pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>spring-boot</category><category>devops</category><category>architecture</category><category>java</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/jev-engineering</guid>
			<title>jev engineering: make AI intelligent more like human</title>
			<link>https://tungdadev.com/blog/jev-engineering</link>
			<description>Tại sao phải đốt tiền gọi LLM cồng kềnh chỉ để kiểm tra một điều kiện Boolean? Khám phá Jev Engineering — mô hình AI System 1 phi tự hồi quy (Non-autoregressive), rẽ nhánh ngữ nghĩa với độ trễ sub-100ms, rẻ hơn 400 lần và loại bỏ hoàn toàn nguy cơ rớt format JSON.</description>
			<pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>ai</category><category>architecture</category><category>software-development</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/jooq-vs-hibernate-jpa-in-practice</guid>
			<title>jOOQ vs hibernate/jpa: khi nào orm trở thành gánh nặng?</title>
			<link>https://tungdadev.com/blog/jooq-vs-hibernate-jpa-in-practice</link>
			<description>Tại sao các hệ thống ngân hàng, tài chính và fintech lại dần từ bỏ Hibernate để chuyển sang jOOQ? Mổ xẻ chi phí ngầm của ORM, sức mạnh của Type-safe SQL với jOOQ và kiến trúc Hybrid thực chiến kết hợp cả hai.</description>
			<pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>spring-boot</category><category>database</category><category>architecture</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/shopify-case-study-redis-to-mysql</guid>
			<title>case study shopify: tại sao họ bỏ redis để quay lại mysql giải bài toán tồn kho black friday?</title>
			<link>https://tungdadev.com/blog/shopify-case-study-redis-to-mysql</link>
			<description>Đạt đỉnh 5.1 triệu USD/phút dịp Black Friday, tại sao Shopify quyết định loại bỏ Redis và quay về tin tưởng MySQL để bảo vệ hàng tồn kho khỏi hiện tượng bán vượt (Overselling)? Mổ xẻ bản chất ACID, Row-Level Locking và bài học kiến trúc đắt giá.</description>
			<pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>architecture</category><category>database</category><category>system-design</category><category>redis</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-boot-bucket4j-rate-limiting</guid>
			<title>rate limiting với bucket4j &amp; redis trong spring boot</title>
			<link>https://tungdadev.com/blog/spring-boot-bucket4j-rate-limiting</link>
			<description>Tại sao Rate Limiting ở Nginx thôi là chưa đủ? Mổ xẻ thuật toán Token Bucket, cơ chế lock-free concurrency của Bucket4j và cách xây dựng hệ thống Rate Limiting phân tán chuẩn Enterprise với Redis trong Spring Boot.</description>
			<pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>spring-boot</category><category>java</category><category>redis</category><category>architecture</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-boot-restclient-fluent-api</guid>
			<title>tạm biệt resttemplate: kỷ nguyên restclient &amp; fluent api trong spring boot 3</title>
			<link>https://tungdadev.com/blog/spring-boot-restclient-fluent-api</link>
			<description>Tại sao RestTemplate bị đưa vào chế độ bảo trì? Khám phá RestClient và JdbcClient — bước chuyển mình mạnh mẽ sang phong cách Fluent API thanh lịch, an toàn và trực quan trong Spring Boot 3.2+.</description>
			<pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>spring-boot</category><category>java</category><category>rest-api</category><category>architecture</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/spring-modulith-deep-dive</guid>
			<title>Spring Modulith: Xây dựng Modular Monolith chuẩn chỉ trước khi nghĩ đến Microservices</title>
			<link>https://tungdadev.com/blog/spring-modulith-deep-dive</link>
			<description>Thay vì vội vàng chia nhỏ hệ thống thành Microservices với vô vàn bài toán phức tạp về Network, Distributed Transaction và Observability, hãy cùng phân tích Spring Modulith – giải pháp chính thức từ Spring giúp xây dựng kiến trúc Modular Monolith có ranh giới rõ ràng, xác thực phụ thuộc tự động và kiến trúc Event-Driven nội bộ.</description>
			<pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>spring-boot</category><category>architecture</category><category>spring-modulith</category><category>domain-driven-design</category><category>microservices</category>
		</item>
	
		<item>
			<guid>https://tungdadev.com/blog/virtual-threads-production-pitfalls</guid>
			<title>cạm bẫy virtual threads trong production: khi project loom không phải viên đạn bạc</title>
			<link>https://tungdadev.com/blog/virtual-threads-production-pitfalls</link>
			<description>Tại sao bật Virtual Threads trong Java 21 lại làm sập ứng dụng production? Mổ xẻ hiện tượng Pinning Carrier Thread do synchronized, phình to bộ nhớ với ThreadLocal, cạn kiệt Connection Pool và giải pháp thực chiến.</description>
			<pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate>
			<author>bthanhtung.ite@gmail.com (TungDaDev)</author>
			<category>java</category><category>virtual-threads</category><category>concurrency</category><category>architecture</category><category>best-practices</category><category>vietnamese</category>
		</item>
	
			</channel>
		</rss>
	