[Open Source] #69 - Dub.co: Kiến trúc hạ tầng quản lý liên kết triệu click với Next.js Middleware, Redis và Tinybird
Việc xây dựng một hệ thống rút gọn liên kết (Link Shortener) thoạt nhìn có vẻ đơn giản, nhưng để vận hành ở quy mô hàng triệu click với độ trễ gần như bằng không (zero-latency) và hệ thống phân tích dữ liệu thời gian thực là một bài toán hóc búa về hạ tầng. Dub.co xuất hiện như một lời giải mẫu mực, kết hợp sức mạnh của Next.js, Edge Computing và Big Data Analytics.
Dưới góc độ kỹ thuật, Dub không chỉ là một ứng dụng web; nó là một hệ thống phân tán được tối ưu hóa cực hạn cho tốc độ điều hướng và độ chính xác của dữ liệu thuộc tính (attribution).
Github: https://github.com/dubinc/dub
🛠️ 1. Nền tảng công nghệ: "Modern Stack" tối ưu hiệu năng
Dub tận dụng những công nghệ tiên tiến nhất để giải quyết các bài toán về quy mô và tốc độ:
- Framework (Next.js App Router): Sử dụng triệt để Server Components và Middleware để xử lý logic ngay tại Edge (biên mạng), giúp giảm thiểu tối đa hành trình của gói tin.
- Database (PlanetScale - MySQL): Một cơ sở dữ liệu phân tán có khả năng mở rộng vô hạn, đảm bảo tính nhất quán (ACID) cho dữ liệu người dùng và cấu hình liên kết.
- Analytics Engine (Tinybird/ClickHouse): Thay vì lưu log click vào MySQL (gây chậm hệ thống), Dub đẩy toàn bộ dữ liệu sự kiện vào Tinybird. Với lõi là ClickHouse, hệ thống có thể phân tích hàng triệu bản ghi trong mili giây để hiển thị biểu đồ thời gian thực.
- Caching & Queue (Upstash Redis/QStash): Sử dụng Redis để lưu trữ "nóng" các liên kết rút gọn tại Edge và QStash để xử lý các tác vụ nền như gửi Webhook, tính toán hoa hồng mà không làm gián đoạn luồng chính.
🏗️ 2. Trụ cột kiến trúc: Edge-First và Monorepo
Kiến trúc của Dub được thiết kế với tư duy "Tốc độ là ưu tiên số 1":
- Edge-First Redirects: Đây là điểm sáng kỹ thuật lớn nhất. Khi người dùng click vào một liên kết
dub.sh/abc, yêu cầu không đi sâu vào server trung tâm. Thay vào đó, Next.js Middleware sẽ bắt lấy yêu cầu tại điểm Edge gần người dùng nhất, kiểm tra nhanh trong Redis (Upstash) và thực hiện chuyển hướng 301/302 ngay lập tức. - Turborepo Monorepo: Dub tổ chức mã nguồn theo mô hình Monorepo, giúp chia sẻ code chặt chẽ giữa ứng dụng chính (
web), hệ thống UI (packages/ui), và schema dữ liệu (packages/prisma). - Open Core Model: Dub tách biệt rõ ràng lõi mã nguồn mở (AGPLv3) và các module dành cho doanh nghiệp (
ee/), cho phép cộng đồng đóng góp dễ dàng trong khi vẫn duy trì được mô hình kinh doanh bền vững.
🔄 3. Workflow: Hành trình của một Click (Sequence Diagram)
Sơ đồ dưới đây mô tả cách Dub xử lý một cú click từ người dùng cuối và ghi nhận dữ liệu thuộc tính:

⚡ 4. Các kỹ thuật "Pro-level" trong mã nguồn
- Analytics Pipes: Dub không thực hiện các câu lệnh SQL
JOINphức tạp trên dữ liệu thô. Thay vào đó, họ sử dụng Tinybird để tạo ra các Pipes – các luồng dữ liệu được tổng hợp sẵn (pre-aggregated). Khi bạn mở Dashboard, UI chỉ cần lấy kết quả từ các Pipe này, giúp tốc độ load biểu đồ cực nhanh. - Fraud Detection (Chống gian lận): Hệ thống tích hợp các quy tắc kiểm tra tần suất click (Rate limiting) và phân tích dấu vân tay trình duyệt (Browser fingerprinting) để loại bỏ click ảo từ bot, đảm bảo tính công bằng cho các chiến dịch affiliate.
- Dynamic Routing: Dub hỗ trợ chuyển hướng thông minh dựa trên:
- Địa lý (Geo-targeting): Click từ Mỹ về trang A, click từ Việt Nam về trang B.
- Thiết bị (Device-targeting): iOS vào App Store, Android vào Play Store.
- Attribution Logic: Hỗ trợ cả cơ chế First-click và Last-click, giúp các nhà tiếp thị xác định chính xác điểm chạm (touchpoint) nào mang lại chuyển đổi cao nhất.
⚖️ 5. So sánh chiến lược
| Tiêu chí | Dub.co | Bitly (SaaS) | Custom Simple Script |
|---|---|---|---|
| Độ trễ chuyển hướng | Cực thấp (Edge-native) | Trung bình | Cao (Query DB trực tiếp) |
| Phân tích dữ liệu | Real-time Big Data | Giới hạn theo gói | Rất hạn chế |
| Quyền sở hữu | Toàn quyền (Mã nguồn mở) | Bị khóa dữ liệu | Toàn quyền |
| Affiliate Tracking | Tích hợp sâu | Không có | Phải tự xây dựng |
✅ Kết luận: Tại sao Dub là hình mẫu lý tưởng?
Dub.co không chỉ là một dự án rút gọn liên kết; nó là một bài học về kiến trúc hiện đại trên môi trường Serverless. Dự án chứng minh rằng với việc kết hợp đúng các công cụ (Next.js cho logic, PlanetScale cho dữ liệu, Tinybird cho phân tích), một đội ngũ nhỏ vẫn có thể xây dựng được một hạ tầng chịu tải ngang tầm các tập đoàn lớn.
Đối với các kỹ sư backend, nghiên cứu Dub sẽ giúp bạn hiểu sâu về:
- Cách tận dụng Edge Middleware để thay thế các layer điều hướng truyền thống.
- Tư duy tách biệt Dữ liệu giao dịch (OLTP) và Dữ liệu phân tích (OLAP).
- Cách xây dựng hệ thống Tracking & Attribution chuẩn xác.
Hy vọng bản phân tích này mang lại cho bạn những góc nhìn giá trị về cách thiết kế hệ thống điều hướng quy mô lớn. Đừng quên Upvote và Follow mình để theo dõi những bài phân tích mã nguồn "khủng" tiếp theo nhé!
All Rights Reserved