Affiliate Dashboard: Engineering Zero-Cost User Acquisition
To drive zero-cost user acquisition, the product management team specified a custom affiliate infrastructure designed to allow users to sign up as affiliates, generate unique referral links, track multi-tier commission statistics, and settle trading commissions dynamically.
+-------------------------------------------------------------------------+
| Affiliate Tree Architecture |
| |
| [ Referrer User ] ----> Generates Code (Base URL + AffCode) |
| | |
| v (Registers via Link) |
| [ Tier 1 Referral ] --> Earns Tier 1 Commission on Trading Fees |
| | |
| v (Registers via Tier 1 Link) |
| [ Tier 2 Referral ] --> Earns Tier 2 Commission on Trading Fees |
+-------------------------------------------------------------------------+
Database Architecture: Why Pre-Order Tree Traversal Won
To maintain absolute data integrity and scalability, the backend team evaluated two database structures for tracking referral hierarchies. SQL Views on a flat relational table (TRNReferralLvl) failed scalability stress testing under high-volume affiliate tree queries. The team selected Pre-Order Tree Traversal via purpose-built database tables (STACommissionType, STACommissionGrp, and ASSCommissionGrpRate):
| Evaluation Criteria |
Option 2: Relational Table (SQL Views) |
Option 4: Pre-Order Tree Traversal |
| Traceability |
Passed |
Passed |
| Debugging Complexity |
Passed |
Passed (via STAUser & ASSUserReferral) |
| Scalability Under Load |
Failed |
Passed |
Affiliate Dashboard API Endpoints
The affiliate frontend (screens SCR_AffiliateLink, SCR_CommisionGroup, SCR_AffDailyCommission) consumes data via four optimised, authenticated endpoints:
GET
/admin/userreflink
Fetches the affiliate's unique referral code base URL
GET
/admin/affstat
Returns aggregated stats: referred_users, tier1_commission, tier2_commission, ytd_total_payout
GET
/admin/referrals
Paginated, incremental Tier 1 referral listings
POST
/admin/payouthist
Rolling 30-day payout transaction ledger