Interaction between plugins, best practices?

What would be considered the best/simplest way to use functionality of one plugin (one of the notification pushing plugins) being called from another plugin? I envision the notification plugin to be user selectable, so you probably won't be loading that at initialization.

It really depends on if the other plugin has implemented an api using blueprint or simpleapi mixins I think. There is also the ability for other plugins to have helper functions. A couple of my MQTT plugins utilize the helper functions exposed by @foosel's MQTT plugin without issue.