News & Events

How to Build an Agile Payment System

Published on June 29, 2020

Pertumbuhan bisnis digital dan transaksi elektronik berdampak besar terhadap gaya hidup masyarakat saat ini. Salah satu kebiasaan masyarakat yang banyak berubah adalah tidak menggunakan uang tunai ketika bertransaksi diberbagai platform jual beli daring. Hal ini didorong oleh pelaku bisnis seperti bank-bank maupun teknologi finansial yang terus menerus menghadirkan kemudahan didalam bertransaksi secara non-tunai. Menurut laporan McKinsey, pada tahun 2019 diprediksi jumlah transaksi global mencapai 1,9 triliun dolar AS dan terus tumbuh mencapai 2,7 triliun dolar AS ditahun 2023. Mayoritas transaksi global banyak terjadi di Asia maupun Amerika Latin.

How to Build an Agile Payment System

Sebaliknya dipihak penyedia layanan transaksi elektronik juga terjadi kompetisi yang sangat tajam. Pemain baru terus bermunculan menekan para pemain lama. Tantangan bagi para pemain lama adalah bagaimana mengefisienkan banyak transaksi dengan infrastruktur yang telah ada, menjadikannya lebih tangkas, bisa dikembangkan dengan sistem baru, dan tentunya dengan margin (batas) yang rendah.

Umumnya sistem pembayaran 'warisan' diciptakan sepanjang dua era yaitu era 70an dan 80an yang mana didominasi oleh desain transaksi mainframes, central databases dan Message Queue (MQ). Selanjutnya pada era 90an sampai tahun 00an dikuasai oleh teknologi seperti Service-Oriented Architecture (SOA), relational database dan Enterprise Service Bus (ESB).

Namun hari ini semua tentang microservices, layanan cloud dan agile development. Para pemain lama tentunya mempertahankan sistem lama mereka yang notabene mampu berjalan dengan baik akan tetapi sulit sekali untuk berubah. Dampaknya adalah para penantang baru terus bermunculan dengan sistem pembayaran yang lebih cepat dan tangkas, mampu menekan biaya transaksi serta lebih kempetitif dibanding mereka yang bertahan dengan sistem lama.

Berikut adalah gambaran arsitektur sistem pembayaran masa lalu:

Mainframes-Centric Payment System

Mainframe diciptakan dengan kapasitas yang besar dan berperan vital untuk menangani setiap proses transaksi. Untuk menambah kapasitas, mainframes dipilih untuk meningkatkan skalabilitas secara vertical, namun karna opsi terbatas sangat sulit untuk meningkatkan skalabilitas dengan horizontal. Berikut adalah kesulitan yang umumnya terjadi:

  1. Batch vs real time: sistem mainframes menggunakan batch file, tetapi tidak real-time
  2. Proprietary components: biaya sistem operasi, IBM MQ, dan basis data mainframe yang mahal.
  3. Kos per transaksi: biaya setiap transaksi yang mahal.
  4. Belum agile (tangkas): mainframes adalah monolitik (tunggal).
  5. Menerima perkembangan teknologi baru: perusahaan penyedia mainframes membiarkan teknologi itu tetap ada namun beranjak dengan mengembangkan platform modern seperti sekarang ini.

SOA dan Database-Centric

Pada tahun 00an para pemain dibidang fintech memunculkan sistem pembayaran baru dengan Service-Oriented Architecture (SOA), ESB, dan Relational Database yang berperan sebagai System of Record. Walaupun relatif baru, permasalahan yang ditimbulkan oleh SOA sangat terasa sekarang ini seperti:

  1. Orkestrasi yang bottleneck: untuk skala besar dan layanan seperti sistem pembayaran menjadi bottleneck.
  2. Basis data yang bottleneck: basis data (database) sering menjadi faktor bottleneck dikarnakan database menjadi tempat menyimpan semua status dan system of record. Ketergantungan terhadap media penyimpanan yang mana komponen terlambat didalam sistem komputer. Performa yang bergantung pada database dan sangat berisiko.
  3. Serial task result in slow response time: SOA bukan event-driven dan layanan dieksekusi setelah seri sebelumnya selesai. Akibatnya pelayanan transaksi pembayaran memakan waktu yang lama dan slow response time.
  4. Kurang tangkas (agile): SOA sangat bergantung dengan ESB dan sulit menambahkan fitur dan kapabilitas yang baru.
  5. Mahal: Bila dibandingkan dengan teknologi kontainer dan cloud, SOA memiliki kos yang cukup mahal.
  6. Layanan cloud menjadi terbatas: SOA dikembangkan jauh sebelum adanya teknologi cloud, sehingga untuk menjadikannya hybrid cukup menyulitkan.
  7. Menerima kehadiran teknologi baru: seperti halnya mainframes, SOA juga mulai ditinggalkan dan beralih ke arsitektur event-driven.

Lalu apa solusi yang ditawarkan oleh para penyedia teknologi sekarang ini? Berikut adalah 9 prinsip yang harus diterapkan oleh para pelaku bisnis digital sekarang ini:

1. Menggunakan microservices untuk meningkatkan skalabilitas secara horizontal

Sistem aplikasi monolitik sudah banyak ditinggalkan saat ini. Sehingga para pelaku bisnis digital banyak yang beralih ke sistem baru yang memungkinkan aplikasi bisa ditingkatkan skalanya secara horizontal, ditambah dengan microservices yang berbasis event-driven sehingga menjadikannya lebih tangkas.

2. Menerima arsitektur event-driven

Pola request/response merupakan sisa-sisa dari era mainframes yang mana setiap permasalahan diibaratkan seperti subrutin. Sedangkan event-driven memungkin setiap layanan transaksi diinisiasi oleh event. Sehingga microservices akan memproses setiap traksaksi yang disebabkan oleh event microservices yang lain. Keunggulan dari pada event-driven yaitu dengan metode publish dan subscribe. Pada umumnya setiap transaksi itu memiliki beberapa tahapan sesuai porsinya masing-masing. Dengan satu publisher mampu menyalukan event ke banyak subscriber untuk diproses ke tingkat selanjutnya. Jadi setiap microservices membagi tugasnya masing-masing secara realtime dan asinkronous.

3. Menciptakan event mesh

Setiap aplikasi dihubungkan dengan event broker sehingga event tersalurkan kemanapun tak terbatas apakah data berasal dari mainframes, database, bahkan layanan cloud sekalipun dan disalurkan kemanapun.

4. Merencanakan subscription, topic, taxonomies dan streams

Setiap event dari microservices mengandung topik, payload dan juga menggunakan metode subscribe untuk memperoleh data dari aliran event. Topik bisa dimanfaatkan untuk menyaring setiap event yang mengalir di event broker. Artinya setiap event akan diambil oleh microservices sesuai dengan topik yang diinginkan.

5. Menggunakan standar protokol terbuka

Dengan adanya berbagai protokol terbuka saat ini seperti REST, WebSocket, PAHO, MQTT, AMQP dan lain-lain menjadikan aplikasi fleksibel untuk dikembangkan. Setiap protokol itu dikembangkan oleh berbagai komunitas sebagai standar protokol sumber terbuka.

6. Identify inline processing and embrace eventual consistency

Sistem pembayaran terdiri dari beberapa rangkaian proses. Response time sangat berpengaruh apabila satu proses bermasalah yang berakibat terhadap customer experience. Dengan arsitektur event-driven, setiap proses dipecah menjadi berbagai prioritas. Setiap transaksi yang membutuhkan kapasitas yang besar akan dipisahkan menjadi satu bagian tertentu untuk menekan performa.

7. Persist with evens rather than file or database.

Media penyimpanan seperti disk merupakan komponen terlambat didalam sistem komputer saat ini sedangkan teknologi jaringan semakin cepat bila dibandingkan dengan disk. Sehingga bergantung pada disk tidak lagi relevan saat ini.

8. Use compensating transactions and checkpoints

Setiap transaksi mungkin saja gagal di satu titik tertentu. Namun dengan menggunakan compensating transaction akan sangat mudah memperbaiki proses transaksi dari titik yang gagal.

9. Make sure you have visibility across events streams

Saat ini platfom penempatan microservices semakin baik. Layanan kontainer seperti Docker, Kubernetes, dan New Relic banyak mempermudah penempatan microservices dibandingkan sebelumnya. Dilain tempat dengan adanya manajemen API memudahkan developer,data scientist dan lain-lain untuk berkolaborasi didalam mendesain sebuah konektifitas aplikasi dari satu titik ke titik yang lain. Sama halnya dengan arsitektur event-driven, dengan adanya sebuah portal daripada event-driven akan sangat memudahkan pihak pengembang untuk melihat event secara menyeluruh dan berkolaborasi untuk membangun aplikasi yang terancang dengan baik.

Source: Solace

PT Strategic Partner Solution

  The Bellezza Shopping Arcade
    2nd Floor Unit SA15-16
    Jl. Arteri Permata Hijau, Kec. Kby. Lama
    DKI Jakarta 12210
  +62 812 8700 0879
  info@myspsolution.com

NETWORKING

Bandung

  Jl. Jend. Sudirman No. 757
    Bandung 40212
(62-22) 603 0590 (Hunting)
(62-22) 603 0967

Medan

  Kawasan Industri Medan Star
    Jl. Pelita Raya I Blok F No. 5
    Tanjung Morawa Km 19,2
    Deli Serdang 20362
  (62-61) 7940800
  (62-61) 7941990

Semarang

  Jl. Tambak Aji I / 6
    Komp. Industri Guna Mekar
    Semarang 50185
  (62-24) 866 3521
  (62-24) 866 3529

Surabaya

  Jl. Ngemplak No. 30
    Komplek Ambengan Plaza
    Blok B 35-37
    Surabaya 60272
  (62-31) 531 9635 (Hunting)
  (62-31) 531 9634

Lampung

  Perumahan Gunung Madu Plantation
    Jalan Pulau Morotai Blok B No. 1
    Kecamatan Sukarame - Tanjung Baru
    Bandar Lampung

Surakarta

  Jalan Melati No. 2,
    Kelurahan Purwosari
    Laweyan, Surakarta

Palembang

  Komplek Ilir Barat Permai
    Blok D.I. No. 31
    Kelurahan 24 Ilir, Palembang

Samarinda

  Jalan Ir. Sutami, Pergudangan Tahap II
    Blok S No.3B
    Karang Asam, Samarinda

Makassar

  Jalan Ir. Sutami,
    Komplek Pergudangan Parangloe Indah
    Blok C-II 3/6, Makassar

Pontianak

  Jalan Raya Wajok Hilir Km. 15,65
    Siantan, Pontianak