<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>HolyDev Blog</title><description>Ghi chu ky thuat chuyen sau ve system design, distributed systems, Redis, database internals, concurrency, microservices, multi-module, va web infrastructure.</description><link>https://holydev.uk/</link><item><title>Apache HTTP Server #2 - Module: Bí mật giúp Apache tồn tại hơn 30 năm mà không cần viết lại từ đầu</title><link>https://holydev.uk/web-infrastructure/apache-http-server-2-module-bi-mat-giup-apache-ton-tai-hon-30-nam-ma-khong-can-viet-lai-tu-dau/</link><guid isPermaLink="true">https://holydev.uk/web-infrastructure/apache-http-server-2-module-bi-mat-giup-apache-ton-tai-hon-30-nam-ma-khong-can-viet-lai-tu-dau/</guid><description>Giải thích kiến trúc module của Apache HTTP Server và vì sao các module như mod_ssl, mod_rewrite, mod_proxy, mod_headers giúp Apache mở rộng hàng chục năm mà không biến thành một khối code khổng lồ.</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Apache HTTP Server #1 - Virtual Host: Làm sao một server có thể host hàng nghìn website?</title><link>https://holydev.uk/web-infrastructure/apache-http-server-1-virtual-host-lam-sao-mot-server-co-the-host-hang-nghin-website/</link><guid isPermaLink="true">https://holydev.uk/web-infrastructure/apache-http-server-1-virtual-host-lam-sao-mot-server-co-the-host-hang-nghin-website/</guid><description>Giải thích cách Apache dùng Virtual Host và Host header để biết request thuộc về website nào, từ shared hosting đến VPS nhiều domain.</description><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Một Lỗi Nhỏ Với Redis ZSET Khiến Hệ Thống Rate Limit Đếm Sai Dù Đã Dùng Lua Script Atomic</title><link>https://holydev.uk/redis/mot-loi-nho-voi-redis-zset-khien-he-thong-rate-limit-dem-sai-du-da-dung-lua-script-atomic/</link><guid isPermaLink="true">https://holydev.uk/redis/mot-loi-nho-voi-redis-zset-khien-he-thong-rate-limit-dem-sai-du-da-dung-lua-script-atomic/</guid><description>Một lỗi logic nhỏ khi dùng ZADD với timestamp làm member có thể khiến Redis ZSET đếm sai request trong sliding window rate limiting, dù Lua script vẫn chạy atomic.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate></item><item><title>ZSET Rate Limiting Trong Redis: Hiểu Đúng ZADD, ZREMRANGEBYSCORE, ZCARD Và ZRANGEBYSCORE</title><link>https://holydev.uk/redis/zset-rate-limiting-trong-redis-hieu-dung-zadd-zremrangebyscore-zcard-va-zrangebyscore/</link><guid isPermaLink="true">https://holydev.uk/redis/zset-rate-limiting-trong-redis-hieu-dung-zadd-zremrangebyscore-zcard-va-zrangebyscore/</guid><description>Hiểu cách sliding window rate limiting hoạt động với Redis ZSET thông qua bốn lệnh cốt lõi: ZADD, ZREMRANGEBYSCORE, ZCARD và ZRANGEBYSCORE.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Challenge: Thundering Herd Problem</title><link>https://holydev.uk/concurrency/challenge-thundering-herd-cache-stampede/</link><guid isPermaLink="true">https://holydev.uk/concurrency/challenge-thundering-herd-cache-stampede/</guid><description>Reproduce and analyze cache stampede under high concurrency, then propose a solution with clear reasoning.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Hiểu về AtomicLong và LongAdder: Khi nào dùng cái nào trong thực tế?</title><link>https://holydev.uk/concurrency/hieu-ve-atomiclong-va-longadder-khi-nao-dung-cai-nao-trong-thuc-te/</link><guid isPermaLink="true">https://holydev.uk/concurrency/hieu-ve-atomiclong-va-longadder-khi-nao-dung-cai-nao-trong-thuc-te/</guid><description>Giải thích sự khác nhau giữa AtomicLong và LongAdder trong Java concurrency, với trọng tâm là contention, performance và lựa chọn đúng theo bài toán.</description><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Sliding Window Rate Limiting (Log) từ cơ bản đến triển khai</title><link>https://holydev.uk/concurrency/sliding-window-rate-limiting-log-co-ban-den-trien-khai/</link><guid isPermaLink="true">https://holydev.uk/concurrency/sliding-window-rate-limiting-log-co-ban-den-trien-khai/</guid><description>Giải thích sliding window rate limiting từ góc nhìn thực tế: rate limiting là gì, cách hiểu &apos;60 giây gần nhất&apos;, cách lưu timestamp theo từng user, và những vấn đề cần xử lý khi triển khai trong môi trường concurrent.</description><pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Concurrency là gì? Hiểu đúng để tránh bug production</title><link>https://holydev.uk/concurrency/concurrency-la-gi-hieu-dung-de-tranh-bug-production/</link><guid isPermaLink="true">https://holydev.uk/concurrency/concurrency-la-gi-hieu-dung-de-tranh-bug-production/</guid><description>Giải thích concurrency, race condition, thread-safe, atomic và cách tránh các bug phổ biến trong backend khi xử lý nhiều request đồng thời.</description><pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Index vs Full Table Scan: Vì sao query chậm?</title><link>https://holydev.uk/database/index-vs-full-table-scan/</link><guid isPermaLink="true">https://holydev.uk/database/index-vs-full-table-scan/</guid><description>Hiểu rõ sự khác biệt giữa Index Scan và Full Table Scan trong database và cách tối ưu query thực tế.</description><pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Map 2 tầng với ConcurrentHashMap: pattern nhỏ nhưng rất thực dụng trong backend</title><link>https://holydev.uk/concurrency/map-2-tang-voi-concurrenthashmap/</link><guid isPermaLink="true">https://holydev.uk/concurrency/map-2-tang-voi-concurrenthashmap/</guid><description>Phân tích cách tổ chức dữ liệu dạng two-level map bằng ConcurrentHashMap, kèm code mẫu cập nhật counter an toàn dưới concurrent load.</description><pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Java Deque: cách dùng thực tế trong backend</title><link>https://holydev.uk/concurrency/java-deque-huong-dan-su-dung-thuc-te/</link><guid isPermaLink="true">https://holydev.uk/concurrency/java-deque-huong-dan-su-dung-thuc-te/</guid><description>Tổng hợp cách dùng Deque trong Java với ví dụ thực tế: FIFO, LIFO, sliding window và lưu ý concurrency.</description><pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Epoch second: vì sao mốc thời gian lại bắt đầu từ năm 1970?</title><link>https://holydev.uk/concurrency/epoch-second-khong-phai-vi-may-tinh-ra-doi-nam-1970/</link><guid isPermaLink="true">https://holydev.uk/concurrency/epoch-second-khong-phai-vi-may-tinh-ra-doi-nam-1970/</guid><description>Giải thích nguồn gốc Unix epoch, lý do chọn 1970, cách dùng trong Java, và Year 2038 problem.</description><pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Challenge: Rate-Limited Analytics API with Hot-Key Cache (Spring Boot)</title><link>https://holydev.uk/concurrency/challenge-rate-limited-analytics-api-hot-key-cache/</link><guid isPermaLink="true">https://holydev.uk/concurrency/challenge-rate-limited-analytics-api-hot-key-cache/</guid><description>Build an in-memory analytics API with per-user rate limiting, time-window stats, and hot-key cache protection under concurrency.</description><pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Java Deque trong thực tế: cấu trúc dữ liệu nhỏ nhưng ảnh hưởng lớn đến latency</title><link>https://holydev.uk/concurrency/java-deque-in-practice/</link><guid isPermaLink="true">https://holydev.uk/concurrency/java-deque-in-practice/</guid><description>Phân tích Java Deque từ góc nhìn backend: semantics FIFO/LIFO, lựa chọn ArrayDeque vs LinkedList, và các pattern code thực chiến.</description><pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate></item><item><title>PSYNC trong Redis: cơ chế thật sự phía sau partial resync</title><link>https://holydev.uk/redis/psync-works/</link><guid isPermaLink="true">https://holydev.uk/redis/psync-works/</guid><description>Mổ xẻ PSYNC: replication-id, offset, backlog window và các tình huống khiến Redis quay lại full resync.</description><pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Thread-per-request vs event loop trong Spring Boot: lựa chọn kiến trúc hay ngụy biện hiệu năng?</title><link>https://holydev.uk/concurrency/thread-per-request-vs-event-loop-spring-boot/</link><guid isPermaLink="true">https://holydev.uk/concurrency/thread-per-request-vs-event-loop-spring-boot/</guid><description>Phân tích sâu mô hình blocking thread-per-request và reactive event loop trong Spring Boot từ góc nhìn latency, throughput và vận hành.</description><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate></item><item><title>CAP trong thực tế: lựa chọn khi hệ thống bị phân vùng</title><link>https://holydev.uk/distributed/cap-theorem-practical/</link><guid isPermaLink="true">https://holydev.uk/distributed/cap-theorem-practical/</guid><description>Diễn giải CAP từ góc nhìn vận hành: phân vùng, timeout, quorum và cách ra quyết định nhất quán dưới áp lực production.</description><pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Redis replication internals: nhìn từ lớp byte và dòng thời gian</title><link>https://holydev.uk/redis/replication-internals/</link><guid isPermaLink="true">https://holydev.uk/redis/replication-internals/</guid><description>Phân tích sâu cơ chế replication của Redis: offset, backlog, full resync, PSYNC và các điểm nghẽn ở mức hệ thống.</description><pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Tổ chức dự án CRUD theo multi-module (Maven)</title><link>https://holydev.uk/multi-module/to-chuc-du-an-crud-theo-multi-module-maven/</link><guid isPermaLink="true">https://holydev.uk/multi-module/to-chuc-du-an-crud-theo-multi-module-maven/</guid><description>Cách tổ chức một dự án CRUD theo multi-module với Maven, từ parent aggregator, shop-app, shop-core đến shop-user.</description><pubDate>Thu, 23 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Bài 12: Testing Web Layer Với WebMvcTest</title><link>https://holydev.uk/microservices/bai-12-testing-web-layer-voi-webmvctest/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-12-testing-web-layer-voi-webmvctest/</guid><description>Hướng dẫn test Controller trong Spring Boot bằng WebMvcTest, MockMvc, MockBean và jsonPath để kiểm tra HTTP status, response JSON và hành vi web layer.</description><pubDate>Tue, 30 Sep 2025 00:00:00 GMT</pubDate></item><item><title>Bài 11: Mockito + JUnit 5: Hướng Dẫn Viết Unit Test Cho Service Layer Step By Step</title><link>https://holydev.uk/microservices/bai-11-mockito-junit-5-huong-dan-viet-unit-test-cho-service-layer-step-by-step/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-11-mockito-junit-5-huong-dan-viet-unit-test-cho-service-layer-step-by-step/</guid><description>Hướng dẫn viết unit test cho service layer bằng JUnit 5 và Mockito, từ khái niệm cơ bản đến cách dùng when(...).thenReturn(...), assertEquals(...), verify(...), và thenAnswer(...).</description><pubDate>Tue, 19 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Bài 10: Hiểu và áp dụng Saga Pattern trong Microservices (Choreography Saga)</title><link>https://holydev.uk/microservices/bai-10-hieu-va-ap-dung-saga-pattern-trong-microservices-choreography-saga/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-10-hieu-va-ap-dung-saga-pattern-trong-microservices-choreography-saga/</guid><description>Hiểu cách Saga Pattern giải quyết distributed transaction trong microservices, từ luồng đặt hàng thực tế đến cách triển khai choreography saga với order-service, inventory-service, payment-service và notification-service.</description><pubDate>Sat, 09 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Bài 9: Tích hợp gRPC | Gọi service nội bộ tốc độ cao</title><link>https://holydev.uk/microservices/bai-9-tich-hop-grpc-goi-service-noi-bo-toc-do-cao/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-9-tich-hop-grpc-goi-service-noi-bo-toc-do-cao/</guid><description>Hướng dẫn tích hợp gRPC để order-service gọi user-service với tốc độ cao hơn Feign/REST trong giao tiếp nội bộ giữa các microservice.</description><pubDate>Fri, 08 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Bài 8: Giám sát microservices với Prometheus và Grafana (kèm cảnh báo Slack)</title><link>https://holydev.uk/microservices/bai-8-giam-sat-microservices-voi-prometheus-va-grafana-kem-canh-bao-slack/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-8-giam-sat-microservices-voi-prometheus-va-grafana-kem-canh-bao-slack/</guid><description>Hướng dẫn cấu hình Prometheus và Grafana để giám sát microservices, tạo alert HTTP 5xx và gửi cảnh báo qua Slack.</description><pubDate>Mon, 28 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Bài 7: Spring Security: JWT custom &amp; Keycloak</title><link>https://holydev.uk/microservices/bai-7-spring-security-jwt-custom-va-keycloak/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-7-spring-security-jwt-custom-va-keycloak/</guid><description>Tổng quan xác thực trong microservices với Spring Security, từ JWT tự tạo đến tích hợp Keycloak theo chuẩn OAuth2 Resource Server.</description><pubDate>Fri, 18 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Bài 6: Event-Driven với Kafka &amp; Gửi Email qua Mailtrap</title><link>https://holydev.uk/microservices/bai-6-event-driven-voi-kafka-va-gui-email-qua-mailtrap/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-6-event-driven-voi-kafka-va-gui-email-qua-mailtrap/</guid><description>Hướng dẫn xây dựng flow event-driven với Kafka trong microservices, từ order-service phát event đến notification-service nhận event và gửi email qua Mailtrap.</description><pubDate>Mon, 14 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Bài 5: Kết nối Redis và Cache dữ liệu users</title><link>https://holydev.uk/microservices/bai-5-ket-noi-redis-va-cache-du-lieu-users/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-5-ket-noi-redis-va-cache-du-lieu-users/</guid><description>Giải thích cách kết nối Redis vào Spring Boot và cache dữ liệu users để giảm tải database trong hệ thống microservices.</description><pubDate>Thu, 10 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Bài 4: Hướng Dẫn Tích Hợp OpenFeign</title><link>https://holydev.uk/microservices/bai-4-huong-dan-tich-hop-openfeign/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-4-huong-dan-tich-hop-openfeign/</guid><description>Hướng dẫn tích hợp OpenFeign để order-service gọi user-service thông qua Eureka mà không cần hardcode URL.</description><pubDate>Tue, 01 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Bài 3: Hướng Dẫn Tích Hợp Eureka Service Discovery trong Hệ Thống Microservices Spring Boot</title><link>https://holydev.uk/microservices/bai-3-huong-dan-tich-hop-eureka-service-discovery-trong-he-thong-microservices-spring-boot/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-3-huong-dan-tich-hop-eureka-service-discovery-trong-he-thong-microservices-spring-boot/</guid><description>Giải thích cách tích hợp Eureka Service Discovery để các service trong hệ thống microservices Spring Boot có thể tự đăng ký và phát hiện lẫn nhau.</description><pubDate>Mon, 30 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Bài 2: tạo order-service và hiểu về API gateway</title><link>https://holydev.uk/microservices/bai-2-tao-order-service-va-hieu-ve-api-gateway/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-2-tao-order-service-va-hieu-ve-api-gateway/</guid><description>Tạo order-service với Java Spring Boot, sau đó hiểu vai trò của API Gateway trong một hệ thống microservices cơ bản.</description><pubDate>Sun, 29 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Bài 1: tạo user-service và hiểu về H2 DB</title><link>https://holydev.uk/microservices/bai-1-tao-user-service-va-hieu-ve-h2-db/</link><guid isPermaLink="true">https://holydev.uk/microservices/bai-1-tao-user-service-va-hieu-ve-h2-db/</guid><description>Hướng dẫn tạo user-service đầu tiên với Java Spring Boot, xây REST API cơ bản và hiểu cách H2 in-memory database hoạt động.</description><pubDate>Sat, 28 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Hướng Dẫn Tổng Quan Xây Dựng Hệ Thống Microservices Với Java Spring Boot</title><link>https://holydev.uk/microservices/huong-dan-tong-quan-xay-dung-he-thong-microservices-voi-java-spring-boot/</link><guid isPermaLink="true">https://holydev.uk/microservices/huong-dan-tong-quan-xay-dung-he-thong-microservices-voi-java-spring-boot/</guid><description>Tổng quan cách xây dựng hệ thống microservices với Java Spring Boot, gồm user-service, order-service, API Gateway, Eureka Discovery Server và giao tiếp giữa các service bằng OpenFeign.</description><pubDate>Wed, 25 Jun 2025 00:00:00 GMT</pubDate></item></channel></rss>