So couldn't we view the LoopMessage as just another Write that doesn't go to the Journal, and add it to the batch like we do during persistAsync? Yes, this means changing the batch type and the journal messages a bit, and filter out these loops in the sync/async write journal, but I think we are getting too many states.