The biggest problem with async work
When it comes to flow, the biggest problem inherent to systems based on async work is that they make the cost of starting new work effectively zero (the other side doesn’t have to be available in order to start new work)
Sync work implies not being able to start new work without having the other side available. Now, the bigger the batches in the system, the longer the other side is busy, and thus unavailable.
The crucial mistake I most often see in this pivotal moment is teams taking the wrong turn and going async instead of reducing the batch size.
Reducing batch size increases the responsiveness of the system because the other side becomes available sooner, and this removes the urge to start something new, which made the throughput plummet.