One of the challenges you face when using asynchronous work queues to modify the state of a document in MongoDB is keeping the data consistent when work units are applied out of order. Here is a simple, but somewhat contrived example of the problem. Lets say you have a web application that lets students enroll and unenroll from classes. Rather than making the user wait for the synchronous actio