Resiliency patterns for golang. Based in part on Hystrix, Semian, and others.
Currently implemented patterns include:
- circuit-breaker (in the
breaker
directory) - semaphore (in the
semaphore
directory) - deadline/timeout (in the
deadline
directory) - batching (in the
batcher
directory) - retriable (in the
retrier
directory)
Note: I will occasionally bump the minimum required Golang version without bumping the major version of this package, which violates the official Golang packaging convention around breaking changes. Typically the versions being dropped are multiple years old and long unsupported.