Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
You want your plugin to be controllable from the outside. One should be able to “tell” the plugin to do something at any time. There could be many instances (calls) of a plugin, but our action should only be executed in the context we provide.
One way to do this is indeed using events.