Поскольку мой первый вопрос был таким долгим, я задаю это как отдельный вопрос. Это еще один вопрос об архитектуре актерского приложения.
Отслеживание путей сообщений через приложение
Возьмем кусок кода Java:
public void deleteTrades(User user, Date date) {
PermissionSet ps = permissionService.findPermissions(user)
if (ps.hasPermission("delete")) {
Set<Trade> ts = peristence.findTrades(date);
reportService.sendCancelReports(ts);
positionService.updateWithDeletedTrades(ts);
}
}
В этом коде у меня есть 4 отдельных компонента, и взаимодействие между ними, необходимое для процедуры deleteTrades
, хорошо определено. Он полностью содержится в методе deleteTrades
.
Моделируя это с помощью Actor
и заменяя мои 4 компонента четырьмя отдельными участниками, как мне отслеживать (на мой взгляд), что включает в себя процедура? В частности, если я избегу использовать оператор !?
, то скорее всего я отправлю сообщение ConditionalDelete
на мой PermissionActor
, который будет отправлять сообщение GetTradesAndDelete
на my PersistenceActor
, который затем отправит дальнейшие сообщения и т.д. Код для обработки удаления будет разбросан по моему приложению.
Это также означает, что почти каждому актеру нужен дескриптор для каждого другого актера (для пересылки сообщений).
Как и в моем предыдущем вопросе, как люди справляются с этим? Есть ли хороший инструмент моделирования, который позволяет вам отслеживать все это? Используют ли люди !?
Я превращаю слишком много компонентов в Actor
s?