Я заметил, что тип почтового ящика инкапсулирован и может использоваться только с помощью MailboxProcessor.
Это означает, что для того, чтобы иметь агента, которому я могу отправлять сообщения, я вынужден иметь единственный почтовый ящик одного типа (или использовать существующий MailboxProcessor экзотическим способом).
Должен ли я понимать, что наличие нескольких почтовых ящиков для одного рабочего процесса неизбежно приведет к плохому дизайну? Ccr явно дает вам такой уровень свободы.
Изменить: Как отметил Дэниел, если кто-то хочет отправить несколько типов сообщений, DU элегантно решает проблему - и не похоже, чтобы я не делал этого в прошлом.
Но вопрос в том, разве это не запах кода? Разве добавление дополнительных типов сообщений, отправляемых агенту, со временем не приведет к тому, что у вас будет слишком много обязанностей? Иногда я думаю, что было бы важно всегда инкапсулировать типы сообщений, которые агент использует, за интерфейсом, чтобы эта информация никогда не раскрывалась.