JIRA has a complete event subsystem that fires events whenever anything happens inside the application. For example, an ISSUE_CREATED event is fired whenever an issue is created.
The bindings for listeners will be
$log, and if this will be instance of
$issue.key; $project.getKey(); $event.someEventDependentMethod();
$issue->key; $project->getKey(); $event->someEventDependentMethod();