Apa Itu Message Broker


Sebelumnya saya telah menulis tentang arsitektur monolitik dan microservices pada sebuah aplikasi atau sistem. Seperti yang saya tunjukkan sebelumnya bahwa pada arsitektur microservices, sistem dijalankan oleh banyak service terpisah. Service-service ini saling bertukar data atau message sehingga proses dalam sistem tersebut dapat dijalankan.

Pertukaran data ini dapat dilakukan secara langsung antar service. Kita ambil contoh sederhana sistem informasi di sebuah rumah makan dimana ada tiga 'komputer' masing-masing satu untuk order, kitchen, dan kasir. Data pesanan masuk dari pelanggan akan dikirimkan dari service Order ke service Kitchen untuk dasar penyajian makanan dan service Kasir untuk tagihan pembayaran.

Ketika rumah makan tersebut semakin maju, pengunjung semakin banyak, menu semakin variatif, dan pelayanan harus semakin baik, ditambahlah beberapa service untuk menunjang pekerjaan. Order sekarang dipisah jadi order reguler, ojol, dan drive-thru. Sementara di internal ditambah service Kitchen Food, Kitchen Beverages, dan Admin.

  

Nah sekarang flow transaksinya menjadi jauh lebih rumit. Service yang terlibat bertambah, secara otomatis koneksi antar service pun semakin banyak. Ditambah lagi sekarang dari Kitchen F & B ada kebutuhan untuk mengirim data ke Order untuk memberi tahu jika ada bahan/menu yang habis. Sehingga sekarang selain koneksi bertambah, arah pengiriman data juga bisa bolak balik.

Flow yang rumit seperti ini biasa disebut spaghetti flow. Banyak kelemahan dari flow yang sudah terlalu semrawut ini. Pertama sulit untuk dimaintain atau diperbaiki jika ada masalah, rawan error atau data hilang di tengah jalan, dan sulit dilakukan pengembangan. Bayangkan jika rumah makan semakin besar dan ingin menambah Kitchen Food yang kedua, maka semua service Order akan terkena imbasnya (harus ikut diupdate padahal tidak ada kesalahan).

Induk dari kebanyakan masalah ini adalah keterikatan antar service. Message Broker hadir untuk menyelesaikan masalah ini. Message broker merapikan proses pertukaran data sehingga lebih mudah dimaintain, dimonitor, dan dikembangkan. Message broker melakukan de-coupling, memisahkan masing-masing service sehingga perubahan/pengembangan di salah satu service tidak berdampak signifikan pada service lain. Berikut jadinya ketika Message Broker digunakan

Sekarang service Order tidak perlu mengirim datanya langsung ke Kitchen, Admin, dan Kasir. Instead, Order cukup meletakkannya di Message Broker. Di sisi penerima, Kitchen, Admin, dan Kasir tinggal ambil data yang sudah ditaruh di Message Broker. Tidak ada hubungan langsung antara pengirim dan penerima. Message Broker bagaikan loker tempat menaruh dan mengambil sesuatu. Perhatikan pula bahwa semua panahnya bolak-balik, artinya satu service bisa berperan sebagai pengirim dan penerima sekaligus.

Untuk lebih memperjelas lagi, message broker ini bisa dianalogikan sebagai jasa kurir pengiriman. Bayangkan kita mau kirim undangan ke 100 orang. Tanpa ada jasa kurir, kita perlu mendatangi 100 orang itu satu per satu. Dengan adanya kurir kita cukup datang ke satu tempat saja, begitu undangan kita serahkan ke kurir, ya sudah.

Di sisi penerima bayangkan kita membeli 25 barang di marketplace dari seller yang berbeda-beda. Lebih enak mana kita menunggu dan membukakan pintu untuk satu-satu seller datang membawakan barang yang kita beli di waktu yang berbeda-beda, atau kita menunggu satu kurir saja teriak pakeeet sambil bawa tumpukan segunung barang yang kita beli?  

Konsep message broker seperti ini lah yang digunakan oleh Apache Kafka. Kafka adalah salah satu product message broker yang sekarang ini banyak digunakan di berbagai bidang. Dalam Kafka, pengirim disebut Producer, penerima disebut Consumer, dan data disimpan dalam kotak-kotak yang disebut Topic. Saya akan menjelaskan seputar Apache Kafka ini pada bagian berikutnya.

Sekian.




Cara Mencairkan Dana dari PayPal ke BCA


PayPal adalah dompet digital dan metode pembayaran digunakan secara internasional. Dikarenakan demografi penggunanya yang tersebar di seluruh dunia, PayPal biasa digunakan untuk transaksi lintas negara seperti jual beli di marketplace luar negeri atau pembayaran fee freelance. PayPal bisa digunakan di Indonesia, bisa diakses secara legal, dan dapat dihubungkan dengan rekening bank lokal. 

PayPal dapat digunakan untuk mengirim dan menerima dana. Kita bisa topup dan withdraw dari rekening bank lokal. Pada artikel kali ini saya akan menuliskan cara mencairkan dana dari PayPal (USD) ke rekening tabungan BCA (IDR).

Bismillahirrahmanirrahim..

1. Sebelum menggunakan PayPal, pengguna perlu membuat akun. Pembuatan akun dapat dilakukan melalui website PayPal. Secara umum pembuatannya mudah dan straight-forward, detail yang diminta untuk dimasukkan pun tidak sulit.

2. Setelah akun aktif dan melakukan transaksi dimana pengguna mendapat transfer dana/punya saldo, pengguna dapat masuk ke kolom Wallet. Disini dapat dilihat jumlah saldo dan akun bank yang terhubung.


3. Jika baru pertama menggunakan dan belum ada bank atau card terhubung, klik Link a bank atau Link a card. Selanjutnya masukkan detail rekening atau kartu kredit. Pertanyaan yang sering muncul adalah apakah kalau mau punya PayPal harus punya credit card, dari sini terjawab bahwa tidak harus, kita bisa pakai rekening debit biasa. Pada gambar di atas bisa dilihat saya telah menghungkan rekening BCA dan BNI.

4. Setelah rekening bank atau kartu sudah set, berikutnya kita bisa melakukan withdrawal atau penarikan dana. Kembali ke Wallet, pada bagian PayPal balance klik Transfer funds

 5. Selanjutnya pilih bank/card tujuan transfer. Ada catatan bahwa untuk bank dana akan masuk ke rekening dalam 2-4 hari kerja, we'll see on that later. Abaikan 'Checking' (giro) di depan nomor rekening ya, dananya akan masuk ke rekening tabungan kok. Klik Next

6. Masukkan nominal yang akan ditarik (dalam dollar). Disini saya withdraw semua saldo, USD305. Klik Next

7. Masuk ke halaman Review Transfer. Periksa kembali jumlah transfer, rekening tujuan, serta yang penting disini adalah kurs konversi ke rupiah. PayPal memang tidak mengambil Fee, PayPal ambil untung dari selisih kurs jual dan beli. Dapat dilihat total dana yang akan masuk ke rekening. Klik Transfer <nominal> IDR Now


8. Finish Transfer, notifikasi bahwa transfer telah diproses, namun kita harus menunggu review dari pihak bank sampai dana masuk ke rekening. Klik Done


9. Kita bisa lihat Status Transfer. Enaknya PayPal adalah kita bisa selalu men-track transaksi sehingga tidak terkesan dana hilang karena sudah terdebet dari PayPal tapi belum masuk rekening. Secara eksplisit PayPal memberikan estimasi bahwa dana akan masuk 25 November pukul 14:59 maksimal.

10. Cek mutasi rekening BCA untuk melihat apakah dana sudah masuk. Meskipun diestimasi akan masuk dalam 2-4 hari, withdrawal ini sudah masuk ke rekening setelah 1 hari kerja saja, Hal ini tergantung pada banyak faktor. Withdraw pada weekend atau hari libur akan memakan waktu lebih lama. Hal yang perlu diingat adalah PayPal menggunakan kalender US sehingga mungkin saja memiliki public holiday yang berbeda dengan Indonesia.


Sekian rangkuman step by step cara mencairkan dana dari PayPal ke rekening BCA. Semoga membantu teman-teman yang perlu melakukan transaksi serupa. Transaksi saya melalui PayPal memang belum banyak, masih bisa dihitung jari. Tapi sejauh ini dana selalu masuk sebelum waktu estimasi dan tidak ada drama-drama, alhamdulillah. PayPal juga punya aplikasi yang memudahkan kita untuk transaksi, cek saldo, atau cek status penarikan dana.

Sekian,

Chandra





 




Setahun Menikah


Menikah setahun berasa mendewasa tiga tahun, itulah yang saya rasakan. Kalau kita main game, sering kali ada item, karakter, atau map yang baru bisa terbuka setelah memenuhi syarat tertentu. Syaratnya bisa capaian level, poin, atau penyelesaian suatu misi. Buat saya menikah ada miripnya dengan itu. Menikah seperti satu check point yang membuka hidup baru.

Banyak pintu yang tertutup ketika menikah, tapi lebih banyak yang terbuka. Meskipun sebelum menikah sudah tanya-tanya, tetap saja banyak kagetnya. Sepertinya memang tidak ada template berkeluarga itu caranya seperti apa. Justru karena itu naik turunnya jadi lebih seru.

Menikah adalah lompatan terbesar yang pernah saya lakukan seumur hidup. Lebih besar daripada masuk SMP di 'kota' dan merantau ke Bandung, those feel so trivial now. Begitu banyak hal baru yang saya lihat dan alami, sebagiannya butuh waktu lumayan untuk cope with it. Sekarang setelah setahun alhamdulillah beberapa hal mulai sorted. Waktu terasa lebih cepat berlalu dengan ringan.

Salah satu nilai yang saya dapatkan pasca menikah adalah bahwa kebanyakan urusan dalam hidup itu sifatnya maraton, bukan sprint. Mungkin sudah banyak ditulis di buku-buku motivasi, tapi setelah menikah saya makin menerima itu karena merasakannya sendiri. 

Berusaha melakukan segalanya serba cepat akan melelahkan, hasil yang didapat pun belum tentu kokoh. Lebih baik membangun pondasinya dulu supaya kalau sudah sampai di tujuan akhir, hasilnya lebih konkrit dan memuaskan karena dibangun melalui proses yang anggun. Kadang kita terlalu memaksakan untuk stay relevant.

Menikah itu di awal-awal seperti mandatory retreat. Kita perlu mundur dari cara hidup yang populer dan mungkin kelihatan keren untuk belajar hal-hal basic yang selama ini belum terasah karena belum diperlukan. Untuk orang yang susah belajar kalau tidak ada tuntutan, hal ini sangat membantu. Saya tidak self proclaim bahwa setelah setahun menikah saya jadi pribadi yang lebih baik. Saya hanya merasa, for the first time, for real, telah melakukan sesuatu.