- Service Discovery: Позволяет сервисам находить друг друга. Реализуется через централизованный реестр (например, ZooKeeper, Consul, etcd).
- API Gateway: Единая точка входа для клиентов, маршрутизирующая запросы к соответствующим сервисам. Обеспечивает аутентификацию, авторизацию, балансировку нагрузки.
- Circuit Breaker (Автоматический выключатель): Предотвращает каскадные сбои, временно отключая вызовы к неисправным сервисам.
- Bulkhead: Изолирует ресурсы разных сервисов, предотвращая их взаимное влияние при сбоях.
- Saga: Управляет распределенными транзакциями, обеспечивая согласованность данных между несколькими сервисами с помощью последовательности локальных транзакций и компенсирующих действий.
- Event Sourcing (Событийно-ориентированное хранилище): Хранит все изменения данных в виде последовательности событий, обеспечивая полную историю состояний.
- CQRS (Command Query Responsibility Segregation): Разделяет логику чтения и записи данных на разные модели, оптимизируя производительность для каждого типа операций.
- Database per Service (База данных на сервис): Каждому сервису выделяется собственная база данных для обеспечения независимости и децентрализации.
- Strangler Fig: Постепенное замещение монолитного приложения микросервисами, перенаправляя части трафика.
Пример реализации Circuit Breaker в PHP (псевдокод):
php