Задача и решение не имеют никакого смысла на практике.
Задача была выбрана исходя из того, что я прочитал главы про процессы и работу с файлами. Прочитаю про сокеты и базы данных — другую придумаю.
Решение было придумано из соображений максимально задействовать на практике прочитанный функционал.
Наверное можно было бы придумать задачу, когда множетсво потоков (word_server) решают более сложную задачу, занимающую значительно большее время, чем потоки ft и db_server. Ну, например, на каждое найденное слово посылают запрос на какой-нибудь интернет сервер и ждут ответа. В этом случае предложенная архитектура имела бы смысл.
Но я просто закреплял прочитанное на практике и ограничился тем, что есть.