I’ve never run a big system like this, but like the lead character in the story, I always figured exponential backoff would be enough. Turns out there’s more.

  • saroh@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    2 months ago

    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