Obiettivo di questa sessione di “live coding serale a ruota libera”: codificare una implementazione del pattern “Circuit Breaker”.

Di cosa si tratta? Il concetto alla base è quello di prevedere un interruttore di sicurezza da attivare nel caso si verifichino condizioni anomale nella chiamata a un servizio esterno; ad esempio, a fronte di un numero elevato di chiamate fallite a un API, oppure a tempi sospettosamente lunghi di elaborazione.

Quando l’interruttore scatta, tutte le chiamate vengono bloccate per un tempo specificato nel tentativo di non sovraccaricare il sistema riducendo la pressione sul servizio che sta presentando problemi, dandogli così modo di ripristinarsi e riprendere successivamente il suo corretto funzionamento, evitando possibili danni o crash di sistemi in cascata.

Si tratta di un pattern molto utile nella creazione di microservizi “resilienti” (per usare un termine tanto di moda quanto antipatico). 🫢