Added version checking in addition to the locking to make sure that records are not processed out of order.  I also had to throttle the publisher so that the consumers don't thrash on top of each other with the locking.