To summarize, the common pattern is

1. actor requests one (or more) message(s) from a stream
2. actor processes the(se) message(s) asynchronously
3. on completion, continue with 1.

Without having made deep investigations, this pattern is probably used in many applications, each coming with its own proprietary implementation. Offering this as a re-usable implementation (trait) could well be a benefit. WDYT?