Bỏ qua điều hướng
HEAD Capital Project

Where — UAE, Việt Nam và vùng Vịnh

Cập nhật lần cuối: 03/08/20268 phút đọc

Câu hỏi trang này trả lời: phục vụ thị trường nào, cái gì khác nhau giữa các thị trường, chạy trên hạ tầng gì và dữ liệu nằm ở đâu.


Bản đồ thị trường

LớpVị trí
Trụ sởUAE; HEAD Capital vận hành tại UAE và Hoa Kỳ
Thị trường mục tiêuUAE · Việt Nam · các thị trường vùng Vịnh — đa quốc gia ngay từ đầu, không phải giai đoạn mở rộng
Địa chỉ đang phục vụhttps://9cashback.com (+ tên miền phụ; một địa chỉ hạ tầng riêng giữ để kiểm tra kỹ thuật)
Đồng cơ sở của sổ cáiAED ở mọi thị trường — quy đổi chỉ xảy ra ở tầng hiển thị và tại thời điểm chi tiền ra
Ngôn ngữTiếng Việt là ngôn ngữ nguồn, tiếng Anh song song; tiếng Ả Rập ở lộ trình vì cần bản dịch thật

Cái gì khác nhau theo thị trường — và vì sao điều đó định hình kiến trúc

Đây là bảng quan trọng nhất của trang này. Nó cho thấy vì sao "mở rộng sau" là một cái bẫy:

ThứUAEViệt Nam
Mạng đối tác liên kếtBộ mạng quốc tế phục vụ vùng VịnhBộ mạng nội địa hoàn toàn khác
Kênh rút tiềnNgân hàng vùng Vịnh, ví địa phươngNgân hàng trong nước, ví nội địa
Danh mục cửa hàngChuỗi bán lẻ và thương mại điện tử vùng VịnhSàn thương mại điện tử nội địa
Ngưỡng hạngTheo AEDKhông quy đổi thẳng — cấu hình riêng, vì mức chi tiêu và giá cả khác nhau
Bố cục giao diệnCần hỗ trợ phải sang tráiTrái sang phải

Không có dòng nào trong bảng này dùng chung được. Vì vậy hai trong ba điểm cắm của hệ thống — bộ chuyển đổi mạngnhà cung cấp chi trả — đều nhận khu vực làm tham số bậc nhất:

Sơ đồ: Khu vực là tham số bậc nhất của hai điểm cắm, nên mở một thị trường mới là thêm một bộ chuyển đổi chứ không phải sửa phần lõi.

mọi bảng dữ liệu đều có cột khu vực ngay từ đầu, kể cả khi mới chạy một nước. Chưa chia mảnh dữ liệu — chỉ cần cột. Lý do được ghi thẳng: thêm cột khu vực vào hàng chục bảng đã có dữ liệu là việc rất đau.


Vì sao AED là đồng cơ sở duy nhất

Một hệ đa tiền tệ có hai cách làm, và cách chọn quyết định độ phức tạp về sau:

CáchHệ quả
Mỗi thị trường một đồng ghi sổĐối soát toàn hệ trở thành bài toán quy đổi nhiều chiều; báo cáo tổng luôn phụ thuộc tỷ giá lúc chạy báo cáo
Một đồng cơ sở duy nhất (đã chọn)Sổ cái chỉ có một đơn vị; quy đổi chỉ xảy ra ở hai chỗ: lúc hiển thị và lúc chi tiền ra

Kèm theo là một luật tách bạch mà nhiều hệ làm sai:

Tỷ giá sống cho hiển thị · tỷ giá đóng băng cho chi trả. Số dư hiện tại quy đổi theo tỷ giá hôm nay là đúng — nó là một ước tính hiện thời. Nhưng một lệnh rút đã thực hiện là sự kiện đã xảy ra: tỷ giá tại đúng thời điểm đó phải được lưu lại và không bao giờ được tính lại.

Tỷ giá được lấy tự động theo lịch và lưu kèm dấu thời gian, thay cho việc gán cứng trong mã — đây là một trong những việc đầu tiên của mốc nền móng.


Hạ tầng: chạy ở đâu

LớpLựa chọnGhi chú
Kiến trúcMột khối có ranh giới rõ, không vi dịch vụƯớc lượng năm đầu nằm thừa trong khả năng một cơ sở dữ liệu đơn
Ứng dụng webKhung web hiện đại theo hướng thành phần máy chủ, giao diện tự viết bám bản thiết kếBộ thiết kế gốc gồm 10 màn theo hướng "Dubai Gold"; 7 màn đã chuyển sang mã
Tiến trình nềnTách khỏi ứng dụng web ngay từ đầuNhận báo về và đối soát không được chạy trong chu kỳ xử lý yêu cầu
Cơ sở dữ liệuCơ sở dữ liệu quan hệ, có phiên bản riêng cho sản phẩm nàyKhông dùng chung với các sản phẩm khác, vì hệ phân quyền của nó tạo vai ở cấp toàn cụm
Hàng đợi và hẹn giờChạy ngay trên cơ sở dữ liệu, không thêm hệ nhớ đệm riêngBớt được một thành phần hạ tầng phải vận hành
Triển khaiVùng chứa trên hạ tầng dùng chung của danh mục, có quy trình triển khai chuẩn

Một quyết định vận hành đáng chú ý: cơ sở dữ liệu của 9Cashback không dùng chung với các sản phẩm khác trong danh mục. Lý do kỹ thuật: hệ phân quyền bảo vệ sổ cái tạo vai ở cấp toàn cụm và thu hồi quyền mặc định trên lược đồ dữ liệu — chạy chung sẽ ảnh hưởng các sản phẩm khác. Đây là ví dụ đúng cho luật của danh mục: chung hạ tầng triển khai, không chung dữ liệu.


Dữ liệu nằm đâu và ai thấy được gì

Loại dữ liệuCách xử lý
Sổ cái và lệnh rútAppend-only tuyệt đối — chặn sửa, xoá và xoá sạch bảng đối với mọi vai, kể cả vai chủ sở hữu
Ảnh hoá đơnLưu kèm dấu vân ảnh để chống dùng lại; ràng buộc duy nhất trên bộ ba cửa hàng · tổng tiền · ngày
Lượt bấmBảng riêng, chỉ ghi thêm, chia mảnh theo tháng, không nối bảng trong đường nóng
Bản chụp yêu cầu từ đối tácLưu để đối soát và đóng băng
Dấu vân thiết bịThu thập lúc đăng ký, phục vụ chống trại tài khoản

Nợ về dữ liệu cá nhân — được ghi tên, không giấu: bảng lượt bấm có gắn định danh người dùng · bản chụp yêu cầu là bắt buộc và bị đóng băng · ứng dụng không có đường xoá. Đây là mâu thuẫn thật giữa hai nguyên tắc đều đúng — sổ không sửa đượcquyền được xoá — và nó cần một quyết định chính sách, không phải một bản vá kỹ thuật. Việc này được đánh dấu là điều kiện phải xử lý trước khi mở rộng, đặc biệt trước khi làm quỹ cộng đồng.


Ranh giới môi trường

Một luật vận hành được ghi bằng chữ in đậm trong tài liệu dự án, vì đã có tiền lệ phải huỷ cả một cơ sở dữ liệu:

Các phép thử phá hoại trên đường tiền — loại cố ý gỡ hàng rào để xem kiểm thử có đỏ không — CHỈ được chạy trên cơ sở dữ liệu nháp dùng một lần, tạo mới rồi xoá sạch. KHÔNG BAO GIỜ trên cơ sở dữ liệu phát triển hay dùng chung.

Cùng nhóm luật đó còn có: di trú lược đồ phải là mã lệnh được người rà soát bằng mắt và áp bằng công cụ dừng-ngay-khi-lỗi — không dùng chế độ đồng bộ tự động, vì nó nuốt lỗi vào một vòng quay rồi thoát ra im lặng.


Vị trí trong danh mục HEAD Capital

Quan hệNội dung
Nhóm danh mụcWeb3 & Tài chính
Dùng chungHạ tầng triển khai, quy trình tài liệu, chuẩn giao diện, hệ sao lưu
Không dùng chungCơ sở dữ liệu và dữ liệu người dùng — cả vì luật danh mục lẫn vì lý do kỹ thuật nêu trên
Tự đứng đượcCó sản phẩm hoàn chỉnh chạy được mà không cần dự án nào khác trong danh mục

Câu chốt: "đa quốc gia" ở đây không phải một câu về tham vọng thị trường. Nó là một ràng buộc đã được cài vào lược đồ dữ liệu và hai điểm cắm — vì bài học của ngành này là thứ giết một nền tảng hoàn tiền khi mở thị trường thứ hai không phải lưu lượng, mà là giả định rằng thị trường thứ hai giống thị trường thứ nhất.

Where — UAE, Việt Nam và vùng Vịnh — HEAD Capital Project