Don't you hate it when you ask a perfectly good question, and someone comes back with the answer "it depends"? It's so frustrating to think that in a world of ones and zeros, people can't give absolute answers and you can't rely on "best practice". It's an answer I've given so many times, especially when someone asks about performance. Well, I've had my comeuppance. The entire exercise of designing the new Java driver for MongoDB has been nothing but a series of questions where the answer is "it depends": Which Java version are our users, um, using? Do people want an asynchronous driver? How will they want to work with async? Will they want to use async and synchronous method calls from the same application? Do people typically use the Java driver directly, or do they use something that wraps it, like Morphia or Spring Data ? What's most important for users in terms of performance? Throughput? Latency? Consis...