Now we call the processor once per commit, and it's also now a commit processor, not an operation processor, so that we can update the cursor properly
This isn't a good way to do it though, because opreations processor is only called for each operation, so we end up not updating the cursor as often as we realistically should be. I'll refactor this slightly later
Split into proper domain components, and 3rd party service glue