Latihan 1 dari materi Resilience Patterns di System Design — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Implementasikan class CircuitBreaker sederhana:
constructor(failureThreshold) — mulai di state "closed".recordSuccess() — reset failure counter ke 0; jika state "half-open" → kembali ke "closed".recordFailure() — tambah counter. Dari "closed": jika counter ≥ failureThreshold → pindah ke "open". Dari "half-open": langsung kembali ke "open".tryReset() — dipanggil setelah timeout; jika state "open" → pindah ke "half-open" (sekali trial).state — property yang bisa dibaca langsung.Satu siklus: closed → (banyak fail) → open → (tryReset) → half-open → (success) → closed, atau half-open → (failure) → open.