Thanks for contributing this Darren! Some thoughts about future directions: How would someone go about maximizing throughput by using multiple connections and multiple requests to a Solr server?
There are two cases from the client perspective: 1) client has a single thread calling add() 2) client has multiple threads generating documents and calling add() Interface: 1) We could have a pool of DocumentManagerClient objects, and create a *new* interface that accepts updates and dispatches to an available DocumentManagerClient. 2) We could make DocumentManagerClient an interface, and have both a single threaded version and a multi-threaded, multi-connection version (which could simply use multiple single threaded versions). - if we opted for (2), then we should make the single-threaded version MT safe so the client wouldn't have to know that one implementation is and one isn't. Wouldn't be too hard - might need to get rid of getLastServerException(). Implementation: Java5 concurrency classes! -Yonik
