В моем приложении пользователи могут публиковать события на карте. Точка входа приложения — это служба веб-API без сохранения состояния. Для внутреннего представления пользователей я хочу иметь пользовательский сервис. Когда следует использовать Reliable Stateful Actors и когда Reliable Stateful Services для хранения данных профиля и опубликованных событий каждого пользователя?
Когда клиент создает нового пользователя во внешнем интерфейсе, актор или служба должны создать нового пользователя внутри. И каждый раз, когда пользователь входит в систему, служба веб-API должна перенаправлять все взаимодействия с пользователем на внутреннее представление пользователя (Актер или Служба). Например. пользователь публикует новое событие, служба веб-API находит пользователя и пересылает ему опубликованное событие. Поскольку опубликованное событие является общедоступным, я также хочу иметь надежную службу событий с отслеживанием состояния. После сохранения отправленного события внутри пользователя служба пользователя должна перенаправить событие в службу событий.
Например:
Client/User --> WebApiService --> UserService/UserActor --> EventService
И когда пользователь хочет увидеть все публичные события на карте, это должно быть примерно так:
Client/User <-- WebApiService <-- EventService
Поскольку события имеют географическую привязку, я хочу разделить EventService на основе геокодов или чего-то подобного.
Какую модель программирования (актор и/или сервис) следует предпочесть для такого приложения и почему?