Microservice Resilience – Timeout Pattern

Oleh Muhammad Mi’raj & Ahmad Nurul Fajar

 

Microservices adalah arsitektur terdistribusi, yang berarti semua komponen (yaitu, layanan) dikerahkan sebagai aplikasi terpisah dan diakses dari jarak jauh melalui semacam protokol akses jarak jauh. Salah satu tantangan arsitektur terdistribusi adalah mengelola remote availability dan responsive proses. Meskipun ketersediaan service dan daya tanggap service keduanya saling berkaitan dengan komunikasi microservice, tetapi keduanya adalah dua hal yang sangat berbeda (Jeklin 2016).

 

Service Availability adalah kemampuan microservice untuk terhubung dengan microservice lainnya yang bertujuan untuk mengirimkannya permintaan, seperti yang ditunjukkan pada Figure 1. Sedangkan disisi lain Responsiveness Service, adalah waktu yang dibutuhkan microservice untuk menanggapi permintaan yang diberikan setelah berkomunikasi dengan microservice lainnya.

Gambar1 Service availability vs. Responsiveness Sumber (Jeklin 2016)

Pada kasus ini apa yang terjadi jika Service Component tidak merespons, apakah Service Consumer harus menunggu tanpa ada batasan waktu yang dapat menyebabkan transaksi dapat terhenti karena menunggu respons dari Service Component. Dengan kasus tersebut maka hadirlah resilience pattern untuk mengatasi permasalah tersebut salah satu patternnya adalah Timeout pattern.

 

Timeout pattern adalah pola untuk menetapkan batas jumlah waktu yang tersedia ketika menunggu operasi selesai. Jika operasi tidak selesai dalam waktu yang telah ditentukan, maka service akan mendapat mendapat informasi bahwa operasi tersebut telah melewati batas waktu (Newman 2015)

 

Daftar Pustaka:

Jeklin, Andrew. 2016. Microservices AntiPatterns and Pitfalls.

Newman, Sam. 2015. Building Microservices – Chapter 1, 4 and 11. Building Microservices.