In both the sync and async case, we're passing in the thing that publishes messages; it's just that those things are rather different. To make them look the same, we'd have to do a bunch of unnecessary wrapping.