Fault tolerance and resilience patterns for Go