То, как это в конечном итоге сработает, будет существовать такой класс
class Envelope<S, T, M> {
final S sender;
final T topic;
final M message;
...
};
Все отправленные сообщения будут обернуты в него (как настоящие письма в конвертах) и отправлены в MailBox
,Диспетчер на другом конце почтового ящика просматривает поля темы / получателя конверта и применяет требуемую политику для доставки правильному получателю в правильном контексте (нить).
Что касается его кодирования самостоятельно - ясделал бы это только для удовольствия.Если бы мне что-то нужно быстро, я бы взял Akka
, в котором уже есть все необходимые примитивы, и использовал их.