A circuit breaker could prematurely cut off all requests to a service, even if only one shard was failing.
They only circuit break retries ?
If a single node is down, then it should not receive traffic via k8s or whatever you use to route based on liveness probe.
Why does your software need to retry anyways? I prefer not implementing live retries, stuff breaks sometimes. Tasks will retry themselves.
You can circuit break the connection to other services so that you stop contacting them if they are down. Giving them some breathing room.
The Wikipedia implem looks simple and good enough to me: https://en.m.wikipedia.org/wiki/Circuit_breaker_design_pattern
And if they ask you if you play basketball, ask them if they play minifgolf.