Resiliency patterns for golang. Based in part on Hystrix, Semian, and others.
Currently implemented patterns include:
- circuit-breaker (in the breakerdirectory)
- semaphore (in the semaphoredirectory)
- deadline/timeout (in the deadlinedirectory)
- batching (in the batcherdirectory)
- retriable (in the retrierdirectory)
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.