resilience

4 posts

Circuit breaker tanpa goroutine, tanpa timer, dan tanpa background overhead

Kebanyakan library circuit breaker memunculkan thread latar belakang untuk memeriksa pemulihan. Anda tidak membutuhkannya. Berikut adalah desain berbasis request yang menghilangkan semua background overhead tanpa mengorbankan correctness.

Setiap circuit breaker produksi yang saya tinjau pada akhirnya memunculkan thread latar belakang. Bisa jadi goroutine Go, Java, atau task tokio Rust. Tugasnya…

Layanan Web Anda Punya Jalur Penutupan yang Anggun. Itulah Bug-nya.

Perangkat lunak crash-only memperlakukan setiap kegagalan sebagai crash dan setiap startup sebagai recovery. Untuk layanan web, ini berarti menghapus logika shutdown Anda dan merancang state yang bertahan meski di-kill -9.

Layanan web Anda punya shutdown handler. Ia melakukan flush buffer, menutup koneksi, menulis checkpoint. Anda mengujinya sekali, mungkin. Di produksi, ia…