Reactive Manifesto
![[6f388af2f0687846ec167b08f3c97c8c.png]]
Reactive Manifesto описывает четыре ключевые характеристики таких систем. Они должны быть отзывчивыми, устойчивыми, эластичными и основанными на обмене сообщениями Message Driven. Системы, обладающие такими характеристиками, следуя документу, называются реактивными (reactive).
- Устойчивость (resilience) — устойчивость к отказам. Изоляция отказов в конкретном участке системы.
- Эластичность (elasticity) — система реагирует на изменения в нагрузке, изменяя потребление своих ресурсов.
- Message Driven — система основана на обмене сообщениями.
Отзывчивость¶
- Система обеспечивает консистентное время ответа, особенно в аварийных ситуациях.
- Система деградирует предсказуемым образом — обеспечивает минимальный уровень сервиса либо отвечает ошибкой.
Устойчивость¶
- Системы должны быть устойчивыми перед отказами.
- Изолируем отказы в определенных границах.
- Обеспечиваем доступность системы.
Message Driven¶
Коммуникация в распределенной системе должна быть основана на обмене сообщениями:
- Так мы достигнем слабой связанности, автономности и изоляции компонентов.
- Обеспечим Location transparency — коммуникацию между компонентами, которая не зависит от топологии системы (локации, адреса, серверы, количества инстансов и прочее).
Эластичность¶
Система реагирует на изменение нагрузки, управляя своими ресурсами.