One version of a RecordOperation interface in preparation for batching. I don't think this will be the final approach used because it makes supplying multiple back-end protocols easier at the expense of making adding new RecordOperations difficult. It will be better to optimize for adding new RecordOperations instead. I want to check in this snapshot though before I embark an refactoring to a new approach.
New approach to refactoring for batching. This is closer. Still need to come back and look at performance though. It seems slower. Also still need to implement batching.