Давайте представим типичное приложение Akka с древовидной структурой Актеров, т. е. небольшим (2-3) количеством актеров верхнего уровня, которые потенциально управляют тысячами мелких актеров в нижней части иерархии. Кажется, есть два подхода к настойчивости:
- Сделайте стойкими только акторов высшего уровня. Дети-актеры полагаются на своих родителей в любом восстановлении состояния и т. д.
- Сделайте всех детей-актеров настойчивыми. В конечном итоге мы получаем потенциально тысячи идентификаторов сохраняемости, и каждый актер может восстановить свое собственное состояние.
Какие соображения существуют при выборе между этими подходами? Существуют ли типичные примеры вариантов использования, которые хорошо подходят для одного, но не подходят для другого?
Вопрос должен быть абстрактным, но вот пример. Скажем, у нас есть актер для каждого пользователя приложения, и эти актеры имеют одного и того же родительского актера. Если мы хотим сохранить адрес электронной почты каждого пользователя и любые его обновления, мы могли бы сделать каждого пользователя-актора постоянным или мы могли бы просто сделать постоянным актор верхнего уровня.