Вот краткое описание того, чего я хочу достичь.
Я разрабатываю одноранговое приложение с использованием сокетов. Я хочу, чтобы все мое общение было асинхронным. Когда партнер запрашивает что-то у другого, он отправляет ему запрос с уникальным идентификатором. Он также будет хранить эту информацию о том, что, что он должен делать, он получает ответ с тегом id, который он только что отправил. Партнер, который получает этот запрос, либо выполнит запрос, либо передаст его одному из своих коллег, который, по его мнению, сможет его выполнить. Теперь последний узел, который фактически выполнит этот запрос, отправит ответ непосредственно тому парню, который инициировал этот запрос.
Существуют и другие варианты дизайна, такие как запуск нового потока для каждого запроса или использование обратных вызовов с потоками, но я хочу использовать простую схему передачи сообщений с сокетами.
Есть ли хороший шаблон дизайна, который я могу использовать? то есть отправить запрос, забыть об этом или начать работу, а затем, когда я получу ответ на свой запрос, я должен знать, что делать дальше. Я могу отправить эту информацию, т.е. что делать дальше, встроенную в объект, или я могу сохранить ее в хеш-таблице с идентификатором msg в качестве ключа.
Какой-нибудь хороший дизайн, который вы можете придумать?