Đến nội dung chính
QK

Redis patterns thực tế: caching, rate limiting, queue, và pub/sub trong một app

QK

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?

QK

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)

Đăng nhập để bình luận

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.

QK
Quang Khải·12 phút đọc
156 23 89

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.

QK
Quang Khải·11 phút đọc
342 47 223