This has been updated even further using the below usages.
$_PLUGINS->trigger( 'activity_onBeforeUpdateStreamActivity', array( $stream, $source, &$row, $old ) );
$_PLUGINS->trigger( 'activity_onBeforeCreateStreamActivity', array( $stream, $source, &$row ) );
$_PLUGINS->trigger( 'activity_onAfterUpdateStreamActivity', array( $stream, $source, $row, $old ) );
$_PLUGINS->trigger( 'activity_onAfterCreateStreamActivity', array( $stream, $source, $row ) );
If the entry is profile.USER_ID, activity.ACTIVITY_ID, or comment.COMMENT_ID it'll automatically build and set $source to those objects. Otherwise plugins are responsible for building $source. If a comment is made on an activity entry it should have the appropriate $source as well (a lot of cases it'll be activity.ACTIVITY_ID) so you'll be able to notify the activity owner for example.
The update triggers also send the previous object so you can do comparisons if you want. Note these are ONLY for push notifications (e.g. frontend user create usage).
Please can build the source with the following triggers.
$_PLUGINS->trigger( 'activity_onCommentSource', array( $this, &$source ) );
$_PLUGINS->trigger( 'activity_onActivitySource', array( $this, &$source ) );