Add a MessageBatch model, implement batch queue