смотри, у меня есть процесс. который иницирует соединение с шардами которые селектят блоки, один такой процесс подключается ко всем 10 шардам. ещё один воркер делает тоже самое. и так пока все воркеры не получат каждому свой сет коннектов
Давайте так... Терминология: Шард - процесс который умеет слушать коннекты и по заданию из коннекта искать то что вам надо внутри своих данных. Аггрегатор - процесс который принимает запросы от пользователя (системы) и разсылает запросы на шарды так, чтобы запрос выполнился на всем наборе данных и только один раз.
ну это как async-работа с бд (можно посмотреть async DBD::Pg) - в одном соединении можно обработать только один запрос, если соединение занято, то нужно брать следующее из пула или открывать новое