Swift concurrency has a feature called for-await that can iterate over an AsyncSequence. Combine has a .values property that can turn Publishers into an AsyncSequence. This feels like a perfect match! But it is surprisingly subtle and makes it very easy to drop messages if you’re not careful. Consider the following example (full code is at the end). // A NotificationCenter publisher that emits Int as the object. // (Yes, this is an abuse of `object`. Hush. I'm making the example simpler.) l...