Fintech Engineering Handbook: Pola Penting untuk Sistem Keuangan
MZ
Mahard Z

Dipublikasikan 27 Juni 2026

Fintech Engineering Handbook: Pola Penting untuk Sistem Keuangan

Membangun sistem perangkat lunak di mana uang adalah fokus utama memerlukan pola pikir yang berbeda dari software engineering pada umumnya. Tidak ada ruang untuk kesalahan floating-point, tidak ada toleransi untuk data yang hilang, dan tidak ada tempat untuk asumsi kepercayaan buta. Fintech Engineering Handbook adalah resource komprehensif yang mendokumentasikan pola-pola paling penting dalam membangun sistem keuangan yang trustworthy.

Handbook ini ditujukan untuk tiga kelompok: orang yang baru bergabung dengan fintech untuk memahami domainnya, engineer yang sudah berada di fintech sebagai referensi saat menghadapi masalah spesifik, dan orang di luar fintech untuk memahami mengapa membangun sistem uang berbeda dari software pada umumnya. Di Indonesia, dengan pertumbuhan startup fintech yang pesat, pemahaman mendalam tentang pola-pola ini semakin krusial.

Tiga Prinsip Fundamental Fintech Engineering

Setiap pola yang didokumentasikan dalam handbook bermuara pada tiga prinsip:

  • No invented data: Uang tidak bisa diciptakan dari ketiadaan. Duplikasi, arbitrary balance updates, dan race condition tidak bisa ditoleransi. Ditegakkan melalui idempotency, deduplication, dan reconciliation.

  • No lost data: Segala sesuatu yang terjadi pada uang harus dilacak dan dipersistenkan. Dilindungi dengan full precision, at-least-once deliveries, event sourcing, audit trails, dan immutability.

  • No trust: Jangan percayai provider eksternal, komponen internal, maupun dunia luar. Diverifikasi dengan webhook verification, cross-checking data antar sumber, dan failing loudly pada asumsi yang rusak.

Ketiga prinsip ini membentuk fondasi dari setiap keputusan engineering di sistem keuangan. Mengabaikan salah satunya bisa berarti kerugian finansial, regulasi yang gagal dipenuhi, atau kehilangan kepercayaan customer. Di industri fintech Indonesia yang tunduk pada regulasi OJK dan BI, adherence terhadap prinsip-prinsip ini bukan hanya best practice tetapi juga kebutuhan compliance.

Merepresentasikan Uang dengan Benar

Sebelum bisa memindahkan atau mencatat uang, kamu harus bisa merepresentasikannya dengan benar. Ada empat cara utama:

  • Floating-point: Hampir tidak pernah ide yang baik karena precision loss yang tidak terduga. Namun ini yang paling cepat dan efisien secara memory.

  • Arbitrary precision: Tipe seperti Java BigDecimal memungkinkan kontrol presisi yang tepat. Cocok untuk intermediate work seperti FX atau pricing math.

  • Minor-units precision: Menyimpan jumlah sebagai integer dalam unit terkecilnya. EUR 12.34 menjadi 1234. Crypto menggunakan konsep serupa dengan satoshi untuk BTC dan wei untuk ETH.

  • Rational numbers: Ketika precision loss sama sekali tidak bisa diterima. Paling powerful tetapi paling lambat dan memerlukan custom datatype.

Handbook menekankan bahwa tidak ada aturan umum selain jangan menggunakan floating-point. Representasi storage dan computation bisa berbeda: seringkali sistem menggabungkan integer storage dengan BigDecimal untuk intermediate computation. Pilihan representasi bergantung pada class of system dan responsibilitasnya.

Serialisasi dan Rounding yang Aman

Satu kesalahan umum adalah serialisasi uang sebagai JSON number. Di sebagian besar parser, JSON number adalah IEEE-754 double, yang berarti masalah floating-point muncul kembali di edge meskipun internal representation sudah benar. Solusinya: kirim uang sebagai string "12.34" atau integer dalam unit terkecil.

Rounding juga merupakan keputusan bisnis, bukan keputusan teknis semata. Strategi rounding yang berbeda memiliki implikasi berbeda. Kadang harus conservative dan round down agar tidak membelanjakan apa yang tidak dimiliki. Kadang half-even lebih penting untuk efek statistik. Rounding sebaiknya dilakukan sesedikit mungkin dan hanya pada boundary: sebelum angka dipersisten atau ditampilkan ke user.

Satu masalah klasik dengan rounding adalah bahwa jika sebuah angka dipecah menjadi beberapa bagian dan rounding diterapkan, jumlah bagian-bagian tersebut mungkin tidak lagi sama dengan angka original. Tergantung pada konteks, ini mungkin memerlukan penanganan eksplisit seperti explicit rounding account.

Handling FX Rates dan Currency

FX rates selalu directional: EUR/USD tidak sama dengan inversi USD/EUR. Pada exchange, buying dan selling adalah dua order berbeda dengan harga berbeda (bid/ask spread). Waktu rate juga kritis: current-time rate untuk menghitung holdings sekarang, value-date rate untuk menghitung perubahan nilai atau jumlah pajak.

Currency harus selalu dipasangkan dengan amount dalam structured type seperti Money struct. Sistem harus melarang cross-currency arithmetic. Gunakan controlled currency set dan validasi di boundary. Untuk crypto, identifier unik memerlukan pendekatan lebih kompleks seperti (network, contract address) karena currency codes tidak cukup untuk mengidentifikasi token unik.

Idempotency dan Deduplication

Dalam sistem fintech, request yang sama bisa datang berkali-kali karena retry, timeout, atau network partition. Tanpa idempotency, setiap retry berpotensi memproses pembayaran ganda. Handbook mendokumentasikan pola idempotency key, unique constraints, dan state machine untuk memastikan operasi yang sama tidak dieksekusi lebih dari sekali.

Reconciliation adalah safety net terakhir: membandingkan internal ledger dengan external statements secara berkala untuk mendeteksi discrepancy. Proses ini harus otomatis, frequent, dan alerting ketika ada mismatch. Di banyak kasus, reconciliation yang terlambat menemukan bug bisa berarti kerugian finansial yang signifikan.

Kesimpulan

Fintech Engineering Handbook adalah resource wajib bagi setiap engineer yang membangun sistem yang menangani uang. Prinsip no invented data, no lost data, dan no trust adalah fondasi yang tidak bisa ditawar. Pola-pola yang didokumentasikan dari representasi uang hingga reconciliation memberikan guideline praktis untuk membangun sistem keuangan yang reliable.

Handbook ini bersifat living document dan terbuka untuk kontribusi. Dokumentasi lengkap tersedia di w.pitula.me/fintech-engineering-handbook. Bagi engineer Indonesia yang bekerja di fintech atau payment gateway, memahami pola-pola ini adalah investasi yang akan membuahkan hasil dalam bentuk sistem yang lebih aman dan trustworthy.