Cockatiel is resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback.
Two commonly perceived problems of the programming language Go are that handling errors is verbose and repetitive parametric polymorphism is not available This post is about the intersection of those problems and Rob Pike’s recommendation on the former.
When you build real world applications, you are not always on the "happy path". You must deal with validation, logging, network and service errors, and other annoyances. How do you manage all this within a functional paradigm, when you can't use exceptions, or do early returns, and when you have no stateful data?
M. Jamalabdollahi, A. Mirzaeinia, and S. Salari. 2012 14th International Conference on Advanced Communication Technology (ICACT), page 832-836. (February 2012)
M. Koppel, J. Schler, and K. Zigdon. Proceedings of the eleventh ACM SIGKDD international conference on Knowledge discovery in data mining, page 624--628. ACM, (2005)