Overview
A production backend powering the Goldlane platform — coal commodity trading, mining land e-commerce, and digital wallet management. It exposes a REST API handling authentication, KYC verification, Xendit payment gateways (virtual accounts & QRIS), withdrawals, referral commissions, trading, orders, and legal document access.
Architecture
Modular Express 4 REST API organized by domain (auth, KYC, wallet, trading, e-commerce). MongoDB with Mongoose for persistence, Socket.IO for real-time dashboard updates, and BullMQ backed by Redis for background jobs such as price history and webhook reconciliation. Authentication uses JWT with role-based access control enforced via roles and permissions.
Role
Backend Developer
Year
2026
Tech Stack
Features
Coal Commodity Trading Engine
Markets, live price histories, trade positions with take profit / stop loss, and automated close logic for profit and loss positions.
Mining Land & Product E-Commerce
Product and mining land listings, order lifecycle management, payments, and secure legal document access requests.
Wallets, Payments & Xendit Integration
User and system wallets, deposits and withdrawals, virtual account (8 banks) and QRIS channels, plus webhook reconciliation for payment callbacks.
Challenges
Reliable Xendit webhook handling
Payment callbacks for virtual accounts, QRIS, and payouts can arrive late, out of order, or duplicated. Solved with idempotent handlers and BullMQ background reconciliation against the gateway.
Trading state consistency
Closing profit/loss trades and updating wallet balances atomically required transactional patterns and careful locking to avoid double-credit or inconsistent ledger state.
Results
150+
API endpoints
Email, OTP, JWT & RBAC
Auth flows
VA (8 banks) & QRIS
Payments
Lessons Learned
- Payment integrations must never trust a single webhook — build a reconciliation path as the source of truth.
- Keeping domain modules decoupled (auth, wallet, trading) makes a large API surface maintainable.