That's a great description. I think blocking will work for you with a queue of size 1 in between. What I'm imagining is that the generators create a failure, you buffer it temporarily in your size one queue, then you send it to your server for processing. If the resource is available, service happens. And all goes smoothly. If you don't have a resource and the queue is full (it only has a capacity of 1, say), then generation is blocked). If you set time generation on the dialog to happen quickly enough, this should be OK I would think. But maybe there is something I am missing?