Skip to content
··3 phút đọc

Tôi biết agency cần gì — nên xây Multi-Tenancy vào ngày 2

Sau 20 năm trong agency, tôi biết kiến trúc multi-tenant không thể đợi — nên vào ngày 2, với chỉ một AI agent hoạt động, tôi tăng gấp 3 độ phức tạp dev để tránh viết lại trong tương lai.

Ngày 21 tháng 8, 2025. Ngày 2 xây STRAŦUM.

Tôi ngồi bàn với một AI agent hoạt động (Business Strategy), authentication cơ bản, và data model rất đơn giản. Cà phê đang nguội. Tôi biết chính xác muốn xây cho ai: SME cần AI marketing trợ giúp, VÀ agency có thể dùng cho nhiều client.

Cả hai đối tượng. Từ ngày 1.

Sau 20 năm bên agency, tôi hiểu agency thực sự cần gì — không phải phiên bản marketing bóng bẩy, mà thực tế lộn xộn quản lý 10-15 client với chiến lược khác nhau, brand guidelines khác nhau, mọi thứ khác nhau.

Nhưng vào ngày 2, nhìn data model đơn giản, tôi nhận ra điều không thoải mái: xây cho cả hai đối tượng nghĩa là xây kiến trúc multi-tenant. Ngay bây giờ. Không phải sau này.

Cuối ngày, tôi commit quyết định tăng gấp 3 độ phức tạp phát triển và kéo dài timeline nhiều tuần.

Tại sao cả hai đối tượng? 20 năm kinh nghiệm agency

Tôi đã thấy strategist phải xoay sở 12 client với 12 brand guidelines khác nhau, copy-paste context giữa các tool, cầu nguyện không gửi nhầm chiến lược cho client sai. Tôi muốn xây thứ thực sự giải quyết vấn đề khó mà tôi thấy suốt hai thập kỷ.

Nhận ra ngày 2: Không thể retrofit Multi-Tenancy

Kiến trúc SME (đang có): users → campaigns → agent_outputs

Kiến trúc multi-tenant (cần cho agency):

organizations (SME hoặc AGENCY)
  ↓
clients (chỉ agency)
  ↓
campaigns
  ↓
agent_outputs (với org_id VÀ client_id)

Khác biệt không chỉ "thêm vài cột." Đó là data model khác biệt cơ bản.

Nếu xây cho SME trước và thêm hỗ trợ agency sau: migrate mọi bảng thêm org_id, retrofit RLS policies toàn database, viết lại frontend routing. Đó không phải thêm tính năng. Đó là viết lại.

Chi phí ngày 2: ~5 giờ redesign data model. Chi phí ngày 60: ~200 giờ refactor mọi thứ. Chênh lệch 40 lần.

Đánh đổi: Multi-Tenancy thực sự tốn gì

  • Phức tạp phát triển 3X (thực tế gần 4X :P)
  • Timeline kéo dài: ~3-4 tuần chậm hơn so với chỉ SME
  • Bảo mật 5X phức tạp hơn: 83 RLS policies trên 26 bảng
  • Test 2X: mỗi tính năng cần test cả SME và agency flow

Tại sao vẫn làm

  1. Retrofit là ác mộng — tôi đã thấy công ty thử. Xây lại máy bay đang bay.
  2. Tôi hiểu agency — 20 năm kinh nghiệm, không phải nghiên cứu thị trường lý thuyết
  3. Thử thách là mục tiêu — tôi muốn sự phức tạp để giữ động lực
  4. Hai đối tượng bổ trợ nhau — agency validate sản phẩm, SME cung cấp volume
  5. Future-proofing — mở khóa team accounts, reseller partnerships, white-label

Kết quả: Đã đúng quyết định?

Hỏi tôi sau 6 tháng khi có khách hàng trả tiền thực. Hiện đang private alpha với 15+ user.

Nhưng tôi biết điều này: tôi có kiến trúc phục vụ cả hai đối tượng đúng cách. Nếu xây chỉ SME và thử thêm agency sau, tôi đang nhìn viết lại 3 tháng ngay bây giờ.

Thời gian sẽ cho biết tôi tham vọng hay chỉ cứng đầu. (Có lẽ cả hai, thành thật.) :)

Bạn đã bao giờ đặt cược kiến trúc sớm mà cảm giác quá tham vọng — và nó có đáng không? Tôi rất muốn nghe câu chuyện.

Thân mến, Chandler

Series kiến trúc STRAŦUM: Quyết định ngày 2 này chỉ là khởi đầu. Ngày 67, tôi phải xây lại toàn bộ lớp multi-tenancy, rồi đến 31 màn hình trắng từ context navigation bị mất, và phát hiện database đúng kỹ thuật nhưng chậm gấp 296 lần.

Đọc tiếp

Hành trình
Kết nối
Ngôn ngữ
Tùy chọn