Revamp Transaksi Konsultasi

Technology Stack
Revamp Transaksi Konsultasi
Ringkasan
Perombakan total alur pembuatan pengiriman, memigrasikan logika pricing dan kalkulasi kritis dari frontend ke backend Golang yang aman dan berkinerja tinggi. Inisiatif ini mengeliminasi kerentanan kalkulasi dan memastikan integritas data di semua jenis transaksi.
Dampak Proyek
Konteks & Kebutuhan
Alur pembuatan pengiriman yang ada memiliki kerentanan kritis:
- Kalkulasi Sisi Klien: Pricing dihitung di frontend, rentan manipulasi
- Hasil Tidak Konsisten: Hasil kalkulasi berbeda antara web dan mobile
- Tidak Ada Audit Trail: Sulit melacak bagaimana harga final ditentukan
- Masalah Performa: Kalkulasi kompleks memperlambat user experience
Kebutuhan Bisnis:
- Eliminasi kerentanan manipulasi pricing
- Konsistensi 100% di semua platform
- Waktu respons di bawah satu detik
- Audit trail lengkap untuk semua transaksi
Arsitektur
Alur Transaksi Aman
Tech Stack:
| Komponen | Teknologi | Tujuan | |----------|-----------|--------| | Calculation Engine | Golang | Kalkulasi berkinerja tinggi, type-safe | | Komunikasi | gRPC | Komunikasi internal service cepat | | Database | PostgreSQL | Penyimpanan transaksi ACID-compliant | | Caching | Redis | Caching data rate, manajemen session | | Container | Docker + K8s | Deployment scalable |
Keputusan Kunci & Tradeoffs
Mengapa Kalkulasi di Backend?
| Pendekatan | Kelebihan | Kekurangan | |----------|------|------| | Frontend (Lama) | Feedback UI cepat | Rentan, tidak konsisten | | Backend (Baru) | Aman, autoritatif | Memerlukan network call |
Solusi Kami: Pendekatan hybrid dengan verifikasi backend
Memigrasikan semua kalkulasi pricing dari JavaScript sisi klien ke backend Golang yang aman, mengeliminasi kemungkinan manipulasi harga dan memastikan hasil konsisten di semua platform.
Mengapa Golang?
Memilih Golang untuk calculation engine karena:
- Performa: Bahasa compiled dengan dukungan concurrency excellent
- Type Safety: Strong typing mencegah error kalkulasi saat compile
- Standard Library: Dukungan built-in untuk kalkulasi desimal presisi
- Deployment: Binary tunggal, mudah di-deploy dan scale
Highlight Implementasi
1. Calculation Engine
Membangun calculation service yang robust dengan:
- Desimal Presisi: Menggunakan
shopspring/decimaluntuk akurasi finansial - Rule Engine: Aturan pricing yang bisa dikonfigurasi tanpa perubahan kode
- Rate Versioning: Preservasi rate historis untuk audit
2. Validation Layer
Validasi input komprehensif:
- Limit Berat: Constraint per jenis layanan
- Kalkulasi Jarak: Verifikasi geocoding sisi server
- Ketersediaan Layanan: Pengecekan rute real-time
3. Audit System
Traceability transaksi lengkap:
- Setiap kalkulasi dicatat dengan konteks penuh
- Record audit immutable di database terpisah
- Resolusi dispute dengan data historis
Hasil & Metrik
Perbandingan Sebelum vs Sesudah
Pencapaian Utama:
- Mengeliminasi 100% kerentanan manipulasi pricing
- Mengurangi response time kalkulasi sebesar 87%
- Zero dispute pricing akibat error kalkulasi
- Audit trail lengkap untuk kepatuhan regulasi
- Pricing konsisten di web, iOS, dan Android
Kepemimpinan Tim
Memimpin tim 3 engineer untuk:
- Mendesain dan mendokumentasikan arsitektur baru
- Mengimplementasikan calculation service Golang
- Migrasi transaksi yang ada tanpa downtime
- Menetapkan monitoring dan alerting
Yang Akan Saya Tingkatkan
Perbaikan yang direncanakan:
- Update Rate Real-time: Perubahan rate push-based tanpa redeployment
- Deteksi Fraud ML-based: Identifikasi pola mencurigakan secara otomatis
- Dukungan Multi-currency: Kalkulasi exchange rate dinamis
- Load Testing: Benchmark performa lebih komprehensif
Pelajaran
"Kalkulasi security-critical tidak boleh mempercayai input klien. Selalu verifikasi di backend, meskipun terlihat redundant."
Proyek ini memperkuat pentingnya "trust but verify" - meskipun kami tetap menampilkan estimasi harga di frontend untuk UX, kalkulasi autoritatif selalu terjadi di server.
Proyek Terkait
Explore more of my work