Graceful degradation when Gitaly is unavailable
I would like to discuss and define our general approach for graceful degradation scenarios (described here - #332339 (comment 661505055))
I believe issues #340816 (closed), #340817 (closed), #340818 (closed) can have a common solution and maybe one single MR will solve all of them.
I created a list of questions that should help us to move forward:
- Do we have an existing guideline for graceful degradation cases?
- What should user see when requesting a page when Gitaly is not available?
- What should user see when requesting an API endpoint when Gitaly is not available?
- Should we explicitly mention Gitaly unavailability in the error message? Or it should be something general like "Page is currently unavailable. Try again later"?
- How can we identify that Gitaly is down?
- Does it make sense to use circuit breaker to reduce load from unavailable Gitaly?
Your feedback is really welcome, please share your thoughts, ideas, and suggestions!