Для универсальной передачи информации о вызываемом методе на клиенте хорошо подходит ОписаниеОповещения и метод ВыполнитьОбработкуОповещения. Жаль, что этот объект и методы по работе с ним недоступны на сервере. В случае сервера придётся передавать имя метода конфигурации для вызова внешнего сервиса в виде строки и служебной структуры параметров.
Каждую из этих реализаций можно сделать в виде обработок с идентичным интерфейсом или вообще закрыть за Фасадом (https://refactoring.guru/ru/design-patterns/façade), предоставив удобный и гибкий API как для подмены реализаций CB между собой так и добавления новых.
Если Circuit Breaker объединить с Retry Pattern (https://learn.microsoft.com/en-us/azure/architecture/patterns/retry) с ощутимо большой задержкой (он и реализуется заметно проще), то можно обеспечить достаточно стабильный и самовосстанавливающийся обмен с другими системами.
Пробовали ли применять что-то из данных шаблонов на работе? Как реализовывали?
Post #342
3.18K

- 🔥 15
- 👍 6
- ❤ 1