At the moment an index is represented by a process. This is not great in terms of concurrency, a "hot" index (ie getting many requests) will receive a lot of messages and each will be handled one by one.
Perhaps a dynamic pool for each index? Or some sort of worker queue?