Komunikasi Antar Sistem

Komunikasi Antar Sistem

Aplikasi X bisa kirim data ke aplikasi Y. Gimana caranya?

Dulu, aplikasi cuman ngelola datanya sendiri. Butuh data apa ya dicari sendiri, bisa dari input user atau sumber data lain terus dimasukin ke aplikasinya.

Semakin modern, sekarang, banyak aplikasi yang bahkan gak pegang data penggunanya. Jadi aplikasi-aplikasi tersebut memanfaatkan data-data dari aplikasi lainnya.

Lahhhh... Bentaarrrr!!!

Gimana ceritanya aplikasi bisa pake data yang ada di aplikasi lain?

Nahhh ... Sekarang, kita bahas ni, gimana caranya aplikasi X bisa kirim data ke aplikasi Y.

Karena banyak banget ni diterapkan saat ini.

Misal mau cek ongkir, kita gak punya datanya, bisa pake layanan data ongkir se-Indonesia tanpa harus cari info sendiri ke ekspedisi.

Mau bayar-bayar lewat bank, kita bisa pake layanan pembayaran bank se-Indonesia yang bisa diakses lewat aplikasi, kita gak perlu daftar rekening ke semua bank.

Enak kan?

Jenis Komunikasi

Jadi ternyata, aplikasi-aplikasi itu bisa saling komunikasi. Mereka bisa menerapkan cara-cara komunikasi yang memang sudah mereka pahami.

Ini adalah 2 jenis komunikasi yang biasa dilakukan.

1. Synchronous

Komunikasi jenis ini, seperti nasi di dapur. Jadi nasinya sudah ada, tinggal kita mau makan atau gak. Kalau kita mau makan, berarti kita harus ke dapur dan ambil nasinya.

Eheemmm... Jadi laper ๐Ÿ˜‚

Kalau di aplikasi, berarti ada aplikasi yang sudah siapkan datanya, tinggal aplikasi lain mau ambil data atau gak.

Terus kenapa ini namanya synchronous communication?

image.png

Karena prosesnya berurutan ni, dari ada data, data diambil, data diterima, itu semuanya berurutan. Jadi yaaa synchronous.

Komunikasi ini biasanya dilakukan dengan menerapkan RPC (Remote Procedure Call) baik REST API, gRPC, atau lainnya.

2. Asynchronous

Kalau ini, seperti kita jadi orang yang punya nasi bungkus. Terus kita minta tolong orang lain untuk dibagikan ke orang-orang. Kalau misalkan ada orang yang mau nerima, ya nasinya sampe. Kalau gak ada, ya nasinya masih.

Cumaaaannn aneh sih kalo gak diambil, kan lumayan ๐Ÿ˜…

Kalau di aplikasi, berarti ada aplikasi yang punya data. Terus lewat pihak lain yang bakalan nembak-nembakin data tadi. Kemudian di sisi lain, ada aplikasi yang siap untuk terima datanya.

Terus kenapa ini namanya asynchronous communication?

image.png

Karena aplikasi yang punya data, cuma kirim data doang, dia gak tau sampe atau gak ke penerimanya. Juga gak perlu nunggu respon dari aplikasi yang nerima, aplikasi tetep bisa lanjut neruskan proses lainnya.

Komunikasi ini biasanya dilakukan dengan menerapkan Message Broker baik:

  • message queue, seperti RabbitMQ
  • pub/sub, seperti Kafka

Penutup

Ternyata, sekarang bukan cuma orang yang bisa kerja sama, tetapi aplikasi juga. Mereka bisa saling mendukung dengan saling menyediakan data atau layanan pemrosesan lainnya. Hal ini, akan memudahkan developer untuk memulai sebuah project baru, karena adanya data-data yang dapat digunakan tanpa harus mengumpulkannya dari awal.

Terima kasih sudah baca.

Kalau mau diskusi, komen aja. Kalau mau berteman, bilang aja ๐Ÿ˜Ž