Redis patterns thực tế: caching, rate limiting, queue, và pub/sub trong một app
Quang Khải
8 tháng 4, 2026 · 14 phút đọc · 5.2k lượt xem
Đây là bài viết demo với nội dung placeholder. Khi kết nối với backend thực (Phase 2), nội dung sẽ được render từ Plate.js JSON thông qua @blog/editor/renderer.
Bối cảnh và vấn đề
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Phân tích codebase cũ
Sau khi audit codebase, chúng tôi phát hiện ra 3 vấn đề chính: circular dependencies giữa các module, business logic nằm rải rác trong controllers, và không có integration tests.
// Trước refactor — circular dep rất phổ biến
@Injectable()
export class PostService {
constructor(
private readonly userService: UserService, // circular!
private readonly categoryService: CategoryService,
) {}
}Kế hoạch refactor
Chúng tôi chọn Strangler Fig pattern — không rewrite từ đầu mà dần dần thay thế từng phần, đảm bảo production vẫn chạy liên tục trong suốt quá trình.
"The best refactoring is the one that ships without users noticing." — Team motto
Nội dung đầy đủ sẽ có khi Phase 2 hoàn thành và kết nối BE thực.
Bài viết có hữu ích không?
Quang Khải
@khaido
Full-stack developer, viết về React, Node.js và mọi thứ liên quan đến web. Đang build sản phẩm tại Việt Nam.
Bình luận (38)
Bài viết liên quan
Cùng chủ đề ⚙️ Backend
Tôi đã refactor toàn bộ backend NestJS như thế nào — và những bài học đắt giá
Sau 2 năm tích lũy tech debt, codebase NestJS của chúng tôi đã trở thành một mớ hỗn độn. Bài viết này ghi lại toàn bộ quá trình refactor, từ planning đến execution, và những gì tôi học được về dependency injection, module boundaries và testing strategy.
PostgreSQL query optimization thực chiến: từ 3s xuống 80ms
Một câu query đơn giản JOIN 4 bảng, 2 triệu rows, chạy 3 giây. Bài viết này ghi lại quá trình dùng EXPLAIN ANALYZE, partial index, materialized view và partition để đưa về 80ms. Không có magic, chỉ là hiểu đúng cách PG planner hoạt động.