На прошлой неделе в Twilio мы активно участвовали в разработке нескольких новых микросервисов. Один из них должен будет проталкивать информацию на внешние хранилища с разными характеристиками, и мы боимся, что один из них станет медленным или недостижимым и будет тормозить все подряд. Это происходит из-за феномена конвоя, подробно описанного (как обычно) в Утренней газете пару месяцев назад.

Среди различных методов решения проблемы мы обязательно воспользуемся автоматическим выключателем. Один из моих коллег не знал о его существовании, поэтому я подумал, что было бы неплохо опубликовать здесь пару кураторских ссылок.

Хорошее объяснение феномена конвоя в The Morning Paper, указывая на статью, в которой он был первоначально определен.

Очень четкое объяснение схемы автоматического выключателя в документе AKKA. Это также реализация, которую мы, вероятно, будем использовать в Twilio, но ее еще предстоит определить.

Более подробное объяснение Мартина Фаулера вместе с реализацией Ruby.

Этих трех источников должно быть достаточно, чтобы получить хорошее представление о проблеме и подходе к ней как в объектно-ориентированном, так и в функциональном программировании.