Where — UAE, Việt Nam và vùng Vịnh
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ớp | Vị trí |
|---|---|
| Trụ sở | UAE; HEAD Capital vận hành tại UAE và Hoa Kỳ |
| Thị trường mục tiêu | UAE · 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ái | AED ở 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ứ | UAE | Việt Nam |
|---|---|---|
| Mạng đối tác liên kết | Bộ mạng quốc tế phục vụ vùng Vịnh | Bộ mạng nội địa hoàn toàn khác |
| Kênh rút tiền | Ngân hàng vùng Vịnh, ví địa phương | Ngân hàng trong nước, ví nội địa |
| Danh mục cửa hàng | Chuỗi bán lẻ và thương mại điện tử vùng Vịnh | Sàn thương mại điện tử nội địa |
| Ngưỡng hạng | Theo AED | Khô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ện | Cần hỗ trợ phải sang trái | Trá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ạng và nhà 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.
Và 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ách | Hệ 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ớp | Lựa chọn | Ghi chú |
|---|---|---|
| Kiến trúc | Mộ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 web | Khung 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ền | Tách khỏi ứng dụng web ngay từ đầu | Nhậ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ệu | Cơ sở dữ liệu quan hệ, có phiên bản riêng cho sản phẩm này | Khô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êng | Bớt được một thành phần hạ tầng phải vận hành |
| Triển khai | Vù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ệu | Cách xử lý |
|---|---|
| Sổ cái và lệnh rút | Append-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á đơn | Lư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ấm | Bả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ác | Lư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 được và quyề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ục | Web3 & Tài chính |
| Dùng chung | Hạ 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 chung | Cơ 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 được | Có 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.