Я новичок в акке и актерском паттерне, поэтому не уверен, подходит ли он моим потребностям.
Я хочу создать симуляцию с аккой и миллионами сущностей (представляющих собой доменные объекты - более поздние актеры), которые могут влиять друг на друга. Таким образом, думая как моделирование с более или менее «нечетким» результатом, мы имеем массив с сущностями, где каждая из этих сущностей имеет скорость, но мешается сущностями перед реальной сущностью. Когда начинается симуляция, каждая сущность должна перемещать n-полей или, если другие мешают, меньше полей. У нас есть несколько итераций, и в конце мы получаем новый порядок. Это повторяется для некоторых раундов, пока мы не хотим увидеть «снимок» ведущих объектов (которые затем могут быть удалены до начала следующего раунда).
Так что я не понимаю, смогу ли я создать это с помощью akka, потому что:
Возможно ли иметь глобальный список с позицией каждого актера, чтобы они знали, в какой позиции они находятся, а какие перед ними?
Насколько я понимаю, это нарушает инкапсуляцию актеров. Я могу поставить позицию актера в самого актера, но как я могу увидеть / уведомить актеров вокруг этого актера?
Помимо этого, глобальный список создаст проблемы синхронизации и повлияет на производительность, которая прямо противоположна желаемому поведению (и дополняет шаблон akka / actor-pattern)
Что я пропустил? Нужно ли искать другой подход к дизайну?
Спасибо за предложения.
Обновление: работать с шиной событий и классификаторами тоже не представляется возможным. Ссылаясь на документацию :
«следовательно, он не подходит для случаев, когда подписки изменяются с очень высокой частотой»