Revamp Transaksi Konsultasi

Tech Lead - Initiative
Team: 3
2024-01 - 2024-06
Revamp Transaksi Konsultasi

Technology Stack

GolangPostgreSQLRedisgRPCDockerKubernetes

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

100%
Level Keamanan
Backend-verified
0%
Error Kalkulasi
dari 2.3%
15ms
Kecepatan Proses
-87%
3 Engineer
Ukuran Tim

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

Web & Mobile Apps
API Gateway
Golang Calculation Engine
PostgreSQL

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:

  1. Performa: Bahasa compiled dengan dukungan concurrency excellent
  2. Type Safety: Strong typing mencegah error kalkulasi saat compile
  3. Standard Library: Dukungan built-in untuk kalkulasi desimal presisi
  4. Deployment: Binary tunggal, mudah di-deploy dan scale

Highlight Implementasi

1. Calculation Engine

Membangun calculation service yang robust dengan:

  • Desimal Presisi: Menggunakan shopspring/decimal untuk 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

0
Kasus Fraud
dari 12/bulan
-95%
Dispute Pricing
15ms
Response Time
dari 120ms
100%
Akurasi Kalkulasi

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:

  1. Update Rate Real-time: Perubahan rate push-based tanpa redeployment
  2. Deteksi Fraud ML-based: Identifikasi pola mencurigakan secara otomatis
  3. Dukungan Multi-currency: Kalkulasi exchange rate dinamis
  4. 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.