digilib@itb.ac.id +62 812 2508 8800

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.