Stream.async() is the right construct. But for other events, should I be using Effect.async for each? If so, then it would appear I need somehow simultaneously yield for all of these event processing effects concurrently or in a race. Is this the right way to handle things? The other option is to wrap all the event handlers in a single Effect.async call, but then most of the code will be in 'non-effect' land, which also doesn't seem right