Thanks for the patch Israel, looks pretty good but I have a couple suggestions:
1. transactionCapacity is basically a safeguard, a sanity check, and any component that tries to put() or take() more than that number of events in a single transaction will get an exception thrown when they try. So we shouldn't characterize it as just a sink thing.
2. In the example, making the capacity a power of 2 seems a bit confusing to me since it kind of seems like we're using 1KB of memory or something. A nice even number of events (like a power of ten) seems more natural to me. But setting it to a larger number such as 1000000 for memory channel seems realistic, that might be a better option. transactionCapacity would typically be set to a significantly smaller number than capacity. I'd say maybe 10000 is the largest batch size that is typically helpful.