0

[Open Source] #94 - Revert: Kiến trúc Unified API hợp nhất dữ liệu SaaS với TypeScript, Prisma và cơ chế Unification/Disunification

Việc tích hợp các nền tảng bên thứ ba (CRMs, Ticketing, Messaging) là một "cơn ác mộng" đối với các startup SaaS. Bạn phải học API của Salesforce, sau đó là HubSpot, rồi lại đến Zendesk – mỗi bên một kiểu xác thực, cấu trúc dữ liệu và giới hạn (Rate limiting) khác nhau. Revert xuất hiện như một "vị cứu tinh" với giải pháp Unified API, cho phép bạn chỉ cần tích hợp một lần duy nhất để kết nối với toàn bộ hệ sinh thái phần mềm B2B.

Dưới góc độ kỹ thuật, Revert là một Case Study mẫu mực về việc xây dựng lớp trừu tượng dữ liệu (Data Abstraction Layer) quy mô lớn bằng TypeScript, Node.js và sức mạnh của công cụ sinh mã Fern.

Github: https://github.com/revertdotdev/revert


🛠️ 1. Nền tảng công nghệ: Type-safe và All-in-one Monorepo

Revert tận dụng tối đa hệ sinh thái JavaScript để đảm bảo sự đồng bộ tuyệt đối giữa Backend và các bộ SDK (Software Development Kits):

  • Backend (Node.js & Express): Lõi xử lý logic cực kỳ nhẹ nhàng nhưng bền bỉ, quản lý hàng vạn kết nối API đồng thời.
  • Database (PostgreSQL & Prisma): Sử dụng Prisma để định nghĩa các quan hệ phức tạp giữa khách hàng (Accounts), ứng dụng (Apps) và các kết nối thực tế (Connections). Mọi thông tin OAuth đều được mã hóa AES-256 trước khi lưu vào DB.
  • Caching & Workers (Redis): Đảm nhiệm vai trò lưu trữ cache tạm thời và quản lý các tác vụ nền như tự động làm mới (refresh) OAuth tokens.
  • Fern Integration: Đây là "vũ khí bí mật" giúp Revert tự động tạo ra các bộ SDK (TypeScript, Python, Java) từ các định nghĩa YAML, đảm bảo tính nhất quán của API Documentation và trải nghiệm lập trình (DX).

🏗️ 2. Trụ cột kiến trúc: Unified Schema và Proxy Layer

Kiến trúc của Revert giải quyết bài toán "vạn vật khác biệt" bằng cách đưa mọi thứ về một chuẩn chung:

  • Common Schema: Revert định nghĩa các thực thể chuẩn hóa (ví dụ: Contact, Deal, Ticket). Dù dữ liệu gốc từ HubSpot có cấu trúc khác Salesforce, Revert sẽ "ép" chúng về cùng một định dạng JSON duy nhất trước khi trả về cho khách hàng.
  • OAuth Proxy: Revert đóng vai trò là một lớp đệm an toàn. Ứng dụng khách hàng không bao giờ phải tiếp xúc trực tiếp với Client Secret của các bên thứ ba, mọi quy trình handshake và lưu trữ token đều được Revert quản lý tập trung.
  • Monorepo Strategy: Quản lý toàn bộ Backend, SDK và các UI component (packages/react, packages/vue) trong một kho mã nguồn duy nhất, giúp cập nhật tính năng đồng bộ trên toàn bộ stack.

🔄 3. Workflow: Luồng đi của dữ liệu hợp nhất (Sequence Diagram)

Sơ đồ dưới đây mô tả hành trình từ một yêu cầu của khách hàng đến API Salesforce thông qua Revert:

image.png

⚡ 4. Các kỹ thuật "Pro-level" trong mã nguồn

  1. Unification & Disunification: Đây là logic cốt lõi. Revert không chỉ gom nhóm dữ liệu (Unify) mà còn có khả năng "phân rã" (Disunify). Khi bạn gửi một Contact theo chuẩn Revert lên, hệ thống sẽ tự biết cách chuyển đổi nó ngược lại định dạng mà Salesforce yêu cầu để thực hiện lệnh tạo mới.
  2. Token Lifecycle Management: Sử dụng các cron job trên nền Redis để quét toàn bộ database và tự động gọi API làm mới Access Token của các bên thứ ba trước khi chúng hết hạn. Điều này đảm bảo tích hợp của khách hàng không bao giờ bị "gãy" (downtime).
  3. Field Mapping & Custom Fields: Revert cho phép khách hàng cấu hình việc ánh xạ các trường dữ liệu tùy chỉnh thông qua UI. Kỹ thuật này giải quyết bài toán khi khách hàng có các cột dữ liệu đặc thù trong CRM mà không nằm trong bộ Common Schema mặc định.
  4. Header-based Versioning: Quản lý phiên bản API thông qua header x-api-version, giúp hệ thống có thể nâng cấp cấu trúc dữ liệu Common Schema mà không làm ảnh hưởng đến các client đang chạy phiên bản cũ.

⚖️ 5. So sánh chiến lược

Tiêu chí Revert (Open Source) Nookal / Merge.dev (SaaS) Tự code Integration
Quyền sở hữu dữ liệu Tuyệt đối (Self-host) Bị kiểm soát bởi nhà cung cấp Tuyệt đối
Giá cả Miễn phí / Infra cost Rất đắt (Tính theo Connection) Tốn công sức Dev cực lớn
Khả năng tùy biến Rất cao (Sửa được lõi) Bị giới hạn Tối đa
Thời gian triển khai Vài giờ Vài giờ Vài tháng

✅ Kết luận: Tại sao Revert là hình mẫu cho kỷ nguyên "Connected SaaS"?

Revert không chỉ là một bộ chuyển đổi API; nó là một bài học về Engineering Efficiency. Dự án chứng minh rằng việc xây dựng một lớp trừu tượng đúng đắn có thể giúp các doanh nghiệp tiết kiệm hàng nghìn giờ làm việc và hàng vạn dòng code thừa.

Đối với các kỹ sư backend, nghiên cứu Revert sẽ giúp bạn hiểu sâu về:

  • Cách xây dựng Common Data Models cho các hệ thống không đồng nhất.
  • Kỹ thuật quản lý OAuth Lifecycle quy mô lớn.
  • Tư duy thiết kế API Wrapper thông minh và có khả năng mở rộng (scalable).

Hy vọng bản phân tích này mang lại cho bạn những góc nhìn mới về hạ tầng tích hợp dữ liệu. Đừ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

Viblo
Let's register a Viblo Account to get more interesting posts.