@MikeSilvis We do something similar in Pushable.each_push_session_batch which you could mimic -- basically, build up a batch of 50 in here, yield it when it's full, and then discard/free it up, so you don't have to keep everything in memory.