Nghiệp vụ thật hiếm khi chạm một hệ thống. Một yêu cầu "tạo đơn cho khách VIP" có thể phải: tra khách (CRM) → kiểm tồn (ERP-DB) → tạo đơn (staging table) → in phiếu (RPA) → gửi SMS. Bài này ghép các mảnh của 6 bài trước thành một kiến trúc điều phối vững.
Lớp integration hub: agent không gọi hệ thống trực tiếp
Đừng để agent giữ chi tiết từng hệ thống. Dựng một integration layer (hub) đứng giữa:
[Agent] --(tool goi)--> [Integration Hub] --> CRM (API)
--> ERP (DB view)
--> Staging (INSERT)
--> RPA bridge
Agent chỉ thấy các tool nghiệp vụ (tra_khach, kiem_ton, tao_don). Hub quyết định tool đó chạm hệ thống nào, qua tầng nào. Đổi backend (ví dụ ERP có API mới) chỉ sửa trong hub, agent không đổi.
Orchestration: workflow cố định vs agent tự quyết
Hai kiểu điều phối, chọn theo mức độ rủi ro:
- Workflow cố định (deterministic): các bước nghiệp vụ quan trọng (tạo đơn, xuất kho) nên đi theo một quy trình do bạn code cứng. Agent chỉ điền tham số, không tự bịa thứ tự bước.
- Agent tự quyết (agentic): chỉ cho phần linh hoạt như hội thoại, phân loại yêu cầu, chọn tool nào để tra cứu.
Saga: xử lý giao dịch xuyên nhiều hệ thống
Bạn không thể "rollback" xuyên ERP + CRM + RPA như một transaction DB. Dùng mẫu Saga: mỗi bước có một hành động bù trừ (compensating action) nếu bước sau thất bại.
Buoc 1: tao don staging -> bu: xoa don staging
Buoc 2: tru ton kho -> bu: hoan ton kho
Buoc 3: in phieu (RPA) FAIL -> chay bu buoc 2, roi bu buoc 1
-> bao nguoi xu ly thu cong
Nếu bước RPA in phiếu lỗi, ta hoàn tồn kho, xóa đơn staging, và báo người — thay vì để dữ liệu "nửa vời".
Đồng bộ dữ liệu: real-time vs batch
- Real-time (gọi khi cần): dữ liệu luôn mới, nhưng phụ thuộc hệ thống sống. Dùng cho tra cứu tức thời.
- Batch/cache (đồng bộ định kỳ ra store riêng): giảm tải legacy, nhanh, chịu được khi legacy sập — nhưng có độ trễ. Dùng cho dữ liệu ít đổi (danh mục sản phẩm, bảng giá).
Khung thiết kế một luồng nhiều hệ thống
- Vẽ sequence: yêu cầu → những hệ thống nào, theo thứ tự nào.
- Đánh dấu bước nào đọc (an toàn) và bước nào ghi (cần Saga + idempotency).
- Chọn deterministic cho các bước ghi, agentic cho phần hội thoại.
- Định nghĩa compensating action cho mỗi bước ghi.
- Quyết định real-time hay cache cho từng nguồn dữ liệu.
- Đặt điểm human-in-the-loop ở đâu (hành động rủi ro cao).
Sai lầm thường gặp
- Để agent gọi thẳng nhiều hệ thống, không có hub → thay đổi backend là phải sửa cả agent.
- Cho agent tự do quyết thứ tự bước ghi → thao tác lộn xộn, khó tái hiện lỗi.
- Không có compensating action → giao dịch dở dang khi một bước fail (đã trừ kho nhưng chưa có đơn).
- Gọi real-time cho mọi thứ → quá tải legacy, chậm, sập là chết cả luồng.
- Cache dữ liệu hay đổi (tồn kho) rồi bán vượt hàng → sai lệch nghiệp vụ.
Tổng kết
Luồng nhiều hệ thống cần một integration hub che chi tiết, workflow cố định cho bước quan trọng, mẫu Saga với hành động bù trừ để xử lý thất bại xuyên hệ thống, và chiến lược cache/real-time hợp lý. Kiến trúc tốt biến một mớ kết nối mong manh thành một luồng vận hành đoán trước được.