Я бы сделал очередь. Пришла строка, запихнул в задачу, забыл. Но тут вопрос сколько памяти нужно на обработку 10к в секунду + реалтайм. Тут уже возникает кэш (в БД или на диске), который не дает переполняться памяти. Опытным путем выясняем сколько задач влезает в память. Если задач уже много в очереди - пишем в кэш. Если мало, то ставим в очередь.
Или вопрос был про парсинг и построение дерева? Тогда зависит от ЯП.