Was surprised to see doBulkRequest spun up in a goroutine. The idea is that the slow operation will happen directly in the committer method, so if it becomes *really* slow it will apply the appropriate back-pressure back to the receiver (since the batchChan will block) and then further back out the system.

As it is now, don't we risk overwriting the array underneath the outBatch value before it's done being used, if doBulkRequest is very slow and the flush interval is small?