Seiring dengan meningkatnya kompleksitas aplikasi, aplikasi berbasis microservice
banyak digunakan karena fleksibilitas dan ekstensibilitasnya dibanding aplikasi
monolithic. Di sisi lain, arsitektur microservice memunculkan kebutuhan terhadap
pattern circuit breaker untuk melindungi pemanggilan remote yang mungkin
mengalami kegagalan. Akan tetapi, implementasi circuit breaker saat ini masih
terbatas pada penanganan kegagalan service yang terkait secara langsung.
Akibatnya, pemanggilan remote yang akan gagal tetap dilakukan. Hal ini dapat
menimbulkan berbagai operasi yang tidak diperlukan. Selain itu, pada penggunaan
pattern saga berbasis orkestrasi diperlukan pemanggilan tambahan sebagai
kompensasi pemanggilan yang sudah dilakukan sebelumnya.
Pada tugas akhir ini dibangun sistem cascading circuit breaker yang dapat
menyebarkan informasi kegagalan suatu service ke service lain yang tidak terkait
secara langsung. Sistem ini diimplementasikan sebagai kontainer sidecar yang
menjalankan server gRPC dan digunakan untuk melakukan wrapping pemanggilan
API REST. Penyebaran informasi kegagalan dilakukan dengan memanfaatkan data
hubungan keterkaitan antar service. Data tersebut dibangun dengan menambahkan
data pemanggilan pada header setiap request.
Pengujian pada skema aplikasi dengan pattern saga berbasis orkestrator
menunjukkan bahwa sistem berhasil menyebarkan informasi kegagalan suatu
service. Akibatnya, pemanggilan endpoint yang pada akhirnya akan gagal dapat
dibatalkan pada tahap yang lebih awal. Penggunaan sistem ini menambah overhead
penggunaan CPU yang bersifat linier dan memori yang bersifat konstan seiring
bertambahnya jumlah request pada aplikasi. Secara relatif, persentase peningkatan
tersebut bersifat konstan dan cukup kecil, yaitu sebesar 2,33% pada CPU dan 3,47%
pada memori. Penggunaan sistem ini juga memiliki overhead waktu response
HTTP yang cukup kecil, yaitu sebesar 3,2ms, tetapi terkadang pada persentil 95
terjadi spike overhead hingga 35,1ms.