Ответ
В распределенных системах часто применяют следующие паттерны:
- Ambassador – прокси-сервис для оффлоада логики (например, мониторинг, логирование). Пример: sidecar-контейнер в Kubernetes.
- CQRS – разделение на команды (запись) и запросы (чтение) для масштабируемости.
- Saga – управление распределенными транзакциями через цепочку событийных компенсаций.
- Event Sourcing – хранение изменений состояния как последовательности событий.
- Circuit Breaker – защита от каскадных сбоев (например, Hystrix).
Пример Circuit Breaker на псевдокоде:
if failure_rate > threshold:
state = "OPEN" # Блокируем вызовы
return cached_response
Также полезны Retry, Backpressure, Sharding. Выбор зависит от требований к согласованности, отказоустойчивости и задержкам.