You can use the flow shown here instead of your rate limit -> process. It does not use a fixed rate limit but releases the next message when the previous one has been completed however long it takes, so it will automatically adapt the rate to maximise the throughput.