Anda di halaman 1dari 3

Nama : Ari Ghiffari

Stambuk : F55118031
Kelas :A

NoSQL
merupakan singkatan dari not only SQL. Jenis-jenisnya seperti document oriented database
(database yang berupa dokumen, datanya seperti artikel yang tipe nya bisa berubah-ubah), key
value database (database yang hanya berisikan primary key dan value, biasanya digunakan untuk
mengakses data secara cepat), column families database (database yang struktur datanya
berorientasi kolom, yang memiliki jumlah kolom yang sangat banyak), graph database
(digunakan untuk relasi relasi yang kompleks, biasanya digunakan untuk social network), search
database (database yang digunakan untuk performa pencarian yang cepat) dan time series
database (database yang datanya ter-record setiap saat).
Contoh NoSQL database yaitu MongoDB yang merupakan document oriented database,
elasticsearch yang merupakan search database, redis yang merupakan key-value database, apache
Cassandra yang merupakan column families database, neo4j yang merupakan graph database dan
influxDB yang merupakan time series database.
Sangat penting untuk mengetahui tentang NoSQL dikarenakan kita dapat mengatur jenis
database yang ingin digunakan berdasarkan cara pengolahan datanya ataupun kebutuhan
pengguna dan service. Contoh implementasinya seperti data product service yang menggunakan
mongoDB, catalog service yang menggunakan elasticsearch, order service yang menggunakan
postgreSQL, member service yang menggunakan neo4j dan activity service yang menggunakan
influxDB.

Remote Procedure Invocation


Yaitu salah satu mekanisme cara berkomunikasi antar service, misalnya komunikasi antar dua
data service pada dua database yang berbeda yang terjadi karena adanya saling membutuhkan
data pada service lainnya. Komunikasi ini tentunya melalui Remote Procedure Invocation tanpa
sharing database atau komunikasi via database.
Contoh remote procedure invocation yaitu seperti RESTful API (HTTP) (Cukup mudah karena
banyak bahasa pemrograman yang sudah support), gRPC, Apache thrift, SOAP (Simple object
access protocol), Java Remote method invocation, Corba (Common object request broker
architecture).
Keuntungan menggunakan remote procedure invocation yaitu sederhana dan mudah, digunakan
untuk komunikasi request – reply dan digunakan untuk proses sync.

Messaging
Yaitu cara kedua berkomunikasi antar service, misalnya suatu service yang ingin mengirim email
dan sms ke customer, mengirim data penjualan ke finance service dan ke report service untuk
dibuat laporannya. RPI bisa digunakan untuk pemisalan kasus seperti itu, namun terdapat
beberapa kasus yang akan menjadi masalah, misalnya akan terjadinya proses yang lama pada
pengiriman email dan sms, lalu mengirim data yang sama berkali kali pada finance service dan
report service. Meskipun ketika ingin membuat paralel process untuk mengatasi permasalahan
sebelumnya, tentu itu sangat rumit karena akan menjadi hal yang sangat kompleks.
Komunikasi messaging cocoknya untuk komunikasi sync yang dimana komunikasinya dilakukan
tanpa harus menunggu proses nya selesai seperti mengirim sms dan email dikarenakan hal yang
seperti itu umumnya tidak terlalu peduli soal balasan dari service yang dituju. Komunikasi
messaging membutuhkan message channel sebagai jembatan untuk mengirim dan menerima data
anggapanya seperti tabel dan direkomendasikan untuk menggunakan aplikasi message broker
sebagai dbms (database management system) nya untuk melakukan manajemen message
channel.
Contoh message broker yaitu Redis (memiliki fitur yaitu PubSub yang bisa digunakan sebagai
message broker nya), apache kafka, rabbitMQ, NSQ, Google PubSub, amazon web service SQS.

Type of Microservices
Terbagi 3 jenis, yaitu stateless microservices, persistence microservices dan aggregation
microservices.
Stateless microservices yaitu biasanya tidak memiliki database karena tidak menyimpan data,
lalu sering digunakan untuk melakukan tugas sederhana, digunakan sebagai utility untuk
microservice lain dan tidak bergantung dengan microservice lain dikarenakan tugas nya hanyalah
sederhana.
Persistence microservices yaitu memiliki database dan juga disebut sebagai master data
microservice atau yang mengolah data, digunakan juga untuk mengolah data di database (Create,
Read, Update, Delete)
Aggregation microservices, saling tergantung dengan microservice yang lain, digunakan sebagai
pusat business logic aplikasi, boleh menggunakan database ataupun tidak dan tidak bisa berdiri
sendiri misalnya service yang berkaitan tersebut mati, maka proses yang terjadi di service
satunya justru tidak sempurna.

Service Orchestration
Cara aggregation microservices berkomunikasi dengan microservice lain, jika menggunakan
remote procedure invocation, maka disebut dengan service orchestration. Dalam service
orchestration, aggregation microservices bertugas untuk mengatur alur business logic system.
Contohnya, terdapat orchestration service, dimana akan melakukan transaksi pada transaction
service di aggregation microservice. Lalu akan memanggil semua service yang dibutuhkan untuk
menjalankan business logic nya, seperti mengirim email di email service, mendapatkan informasi
member di member service dan lain lain.
Keuntungan menggunakan service orchestration yaitu mudah dibuat dan mudah dimengerti
dikarenakan kode business logic akan terpusat di aggregation microservice nya. Namun
kekurangannya yaitu terlalu ketergantungan dengan microservices lain sehingga tidak bisa
berdiri dikarenakan jika salah satu microservice yang dibutuhkan mati atau bermasalah, maka
akan ada masalah juga hingga tidak bisa jalan pada proses microservice yang sedang digunakan.
Lalu akan lebih lambat karena harus terkoneksi dengan microservices lain. Terakhir, jika perlu
microservices baru maka perlu dilakukan perubahan di aggregation microservices nya.

Service Choreography
Dalam service choreography, aggregation microservice ialah service yang sangat kompleks dan
mengerti semua alur business logic, semua microservice dituntut untuk menjadi pintar dan tidak
hanya diperintah oleh aggregation microservices. Keuntungan menggunakan service
choreography adalah tidak tergantung dengan microservices lainnya, lalu lebih cepat
dikarenakan tidak perlu komunikasi dengan microservices lainnya dan jika ada microservices
baru maka aggregation microservices tidak perlu melakukan perubahan lagi. Misalnya akan
mengirim pesan (SMS Service), maka tinggal ke transaction event nya dan tidak perlu ada
perubahan pada transaction service pada aggregation microservices. Namun kekurangannya
adalah sulitnya di-debug ketika terjadi masalah dikarenakan logic sudah tersebar dan
komunikasinya sudah sikron. Lalu business logic akan terdistribusi di semua microservices,
sehingga sulit dimengerti untuk keseluruhan.

Anda mungkin juga menyukai