Как мне создать актеров, которые express иерархические структуры в Акке? - PullRequest
1 голос
/ 03 февраля 2020

Я недавно начал разрабатывать, используя akka Event Sourcing / Sharding для кластеров, и благодаря онлайн-ресурсам, я думаю, я понял основные принципы c и то, как создать простое приложение с ним. Однако я пытаюсь применить эту методологию в несколько более сложной структуре данных:

В качестве примера давайте подумаем о веб-страницах и URL-адресах. Каждая страница может быть представлена ​​актером в кластере (с уникальным идентификатором в качестве пути к странице, например, /questions/60037683).

На каждой странице я могу выдавать такие команды, как

  • Создать страницу (поэтому, если страница не существует, она будет создана)
  • Редактировать страницу (редактирование сведений о странице)
  • Получить содержимое страницы (и дочерние элементы)

Et c.

При выдаче команд на отдельные страницы все просто, как это «написано в руководстве». Но я добавил сложность, которую веб-страница может иметь дочерние, поэтому при создании «дочерней страницы» мне нужно, чтобы родитель обновлял ссылки на ее дочерние элементы.

Я подумал о некоторых возможных подходах, но они чувствуют неполное.

  • Отправка всех событий на одну веб-страницу и при создании страницы, поиск родительской страницы (если есть) и сообщение о добавлении нового дочернего элемента
  • Отправка всех событий на одну веб-страницу, и при создании страницы сообщение отправляется родителю, а затем создается новая команда, которая скажет дочернему элементу инициализировать
  • Создание инфраструктуры в виде WebPageRepository, которая будет отслеживать дерево страниц и будет передавать команды CRUD всем действующим лицам веб-страниц.

Я думаю, что моя настоящая проблема заключается в правильной обработке возврата фьючерсов при передаче сообщений другим акторам, которые должны фактически выполнять работу. .

Я путаюсь, и некоторые ресурсы для чтения будут очень полезны. Preciated.

Спасибо за ваше время.

РЕДАКТИРОВАТЬ: первая версия говорила о общей иерархической структуре, похожей на файловую систему. Я обновил информацию о реальных целях, веб-страницах и URL-адресах и попытался лучше прояснить мои проблемы

...