SubscribeAsync subscribes to a topic with an asynchronous callback
Transactional determines whether subsequent callbacks for a topic are
run serially (true) or concurrently (false)
Returns error if `fn` is not a function.