title: BroadcastBlock with guaranteed delivery in TPL Dataflow
body: <p>I have a stream of data that I process in several different ways... so I would like to send a copy of each message I get to multiple targets so that these targets may execute in parallel... however, I need to set <code>BoundedCapacity</code> on my blocks because the data is streamed in way faster than my targets can handle them and there is a ton of data. Without <code>BoundedCapacity</code> I would quickly run out of memory.</p>
  <p>However the problem is <code>BroadcastBlock</code> will drop messages if a target cannot handle it (due to the <code>BoundedCapacity</code>).</p>
  <p>What I need is a <code>BroadcastBlock</code> that will not drop messages, but will essentially refuse additional input until it can deliver messages to each target and then is ready for more.</p>
  <p>Is there something like this, or has anybody written a custom block that behaves in this manner?</p>