Я работал на таких серверах раньше. Все они были написаны на C (или довольно простом C ++). Но их производительность была еще выше - они обрабатывали 20 тыс. Обновлений в секунду (все обновления с большинства крупных бирж).
Мы бы сосредоточились на том, чтобы не копировать память. Мы были очень осторожны в том, какие классы STL мы использовали. Что касается обновлений, то каждый финансовый инструмент будет объектом, и любые клиенты, которые хотят услышать об этом инструменте, подпишутся на него (т.е. будут добавлены в список).
Сервер был многопоточным, но не слишком интенсивным - возможно, поток, обрабатывающий входящие обновления, один обрабатывал исходящие клиентские обновления, один обрабатывал клиентские уведомления о подписке / выпуске (не помню эту часть - просто помните, что у него было меньше потоков, чем я ожидал, но не только один).
РЕДАКТИРОВАТЬ: Да, и, прежде чем я забуду, количество финансовых транзакций растет в геометрической прогрессии. Этот сервер со скоростью 20 Кбит / с едва успевал за работой, и архитекторы были обеспокоены тем, что делать в следующем году. Я слышал, что все крупные финансовые фирмы сталкиваются с похожими проблемами.