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 |
| Database | MongoDB | Penyimpanan dokumen fleksibel untuk semua transaksi |
| Caching | Redis | Caching data rate, manajemen session |
| Container | Docker | Deployment terkontainerisasi |
| CI/CD | Jenkins | Pipeline build dan deployment otomatis |
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:
- Format Harga Konsisten: Library penanganan desimal yang terstandarisasi untuk memastikan representasi harga seragam di semua jenis transaksi
- 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
- Mempertahankan response time konsisten di bawah 1 detik — andal dan aman dengan semua logika dipindah ke BE
- Zero dispute pricing akibat error kalkulasi
- Audit trail lengkap untuk kepatuhan regulasi
- Pricing konsisten di web, iOS, dan Android
Kepemimpinan Tim
Memimpin langsung tim inti 3 engineer, dengan kolaborasi lintas fungsi bersama 10+ stakeholder — mobile developer, QA engineer, Product Manager, dan Product Owner — untuk memastikan migrasi backend selaras dengan kebutuhan di semua platform dan tim.
- Mendesain dan mendokumentasikan arsitektur baru
- Mengimplementasikan calculation service Golang
- Migrasi transaksi yang ada tanpa downtime
- Menetapkan monitoring dan alerting di semua platform
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

