diff --git a/core/modules/migrate/src/Event/MigrateImportEvent.php b/core/modules/migrate/src/Event/MigrateImportEvent.php
index 5dae9bf..a06c680 100644
--- a/core/modules/migrate/src/Event/MigrateImportEvent.php
+++ b/core/modules/migrate/src/Event/MigrateImportEvent.php
@@ -8,6 +8,7 @@
 namespace Drupal\migrate\Event;
 
 use Drupal\migrate\Entity\MigrationInterface;
+use Drupal\migrate\MigrateMessageInterface;
 use Symfony\Component\EventDispatcher\Event;
 
 /**
@@ -23,13 +24,23 @@ class MigrateImportEvent extends Event {
   protected $migration;
 
   /**
+   * The current message service.
+   *
+   * @var \Drupal\migrate\MigrateMessageInterface
+   */
+  protected $message;
+
+  /**
    * Constructs an import event object.
    *
    * @param \Drupal\migrate\Entity\MigrationInterface $migration
    *   Migration entity.
+   * @param \Drupal\migrate\MigrateMessageInterface $message
+   *   The current migrate message service.
    */
-  public function __construct(MigrationInterface $migration) {
+  public function __construct(MigrationInterface $migration, MigrateMessageInterface $message) {
     $this->migration = $migration;
+    $this->message = $message;
   }
 
   /**
@@ -42,4 +53,13 @@ public function getMigration() {
     return $this->migration;
   }
 
+  /**
+   * Get the current destination message service.
+   *
+   * @return \Drupal\migrate\MigrateMessageInterface
+   */
+  public function getMessageService() {
+    return $this->message;
+  }
+
 }
diff --git a/core/modules/migrate/src/Event/MigratePostRowSaveEvent.php b/core/modules/migrate/src/Event/MigratePostRowSaveEvent.php
index 2da91a5..dcce6e6 100644
--- a/core/modules/migrate/src/Event/MigratePostRowSaveEvent.php
+++ b/core/modules/migrate/src/Event/MigratePostRowSaveEvent.php
@@ -8,6 +8,7 @@
 namespace Drupal\migrate\Event;
 
 use Drupal\migrate\Entity\MigrationInterface;
+use Drupal\migrate\MigrateMessageInterface;
 use Drupal\migrate\Row;
 
 /**
@@ -20,13 +21,15 @@ class MigratePostRowSaveEvent extends MigratePreRowSaveEvent {
    *
    * @param \Drupal\migrate\Entity\MigrationInterface $migration
    *   Migration entity.
+   * @param \Drupal\migrate\MigrateMessageInterface $message
+   *   The current messaging service.
    * @param \Drupal\migrate\Row $row
    *   Row object.
    * @param array|bool $destination_id_values
    *   Values represent the destination ID.
    */
-  public function __construct(MigrationInterface $migration, Row $row, $destination_id_values) {
-    parent::__construct($migration, $row);
+  public function __construct(MigrationInterface $migration, MigrateMessageInterface $message, Row $row, $destination_id_values) {
+    parent::__construct($migration, $message, $row);
     $this->destinationIdValues = $destination_id_values;
   }
 
diff --git a/core/modules/migrate/src/Event/MigratePreRowSaveEvent.php b/core/modules/migrate/src/Event/MigratePreRowSaveEvent.php
index d0ece73..82ccdb1 100644
--- a/core/modules/migrate/src/Event/MigratePreRowSaveEvent.php
+++ b/core/modules/migrate/src/Event/MigratePreRowSaveEvent.php
@@ -8,6 +8,7 @@
 namespace Drupal\migrate\Event;
 
 use Drupal\migrate\Entity\MigrationInterface;
+use Drupal\migrate\MigrateMessageInterface;
 use Drupal\migrate\Row;
 use Symfony\Component\EventDispatcher\Event;
 
@@ -24,6 +25,13 @@ class MigratePreRowSaveEvent extends Event {
   protected $row;
 
   /**
+   * The current message service.
+   *
+   * @var \Drupal\migrate\MigrateMessageInterface
+   */
+  protected $message;
+
+  /**
    * Migration entity.
    *
    * @var \Drupal\migrate\Entity\MigrationInterface
@@ -35,9 +43,13 @@ class MigratePreRowSaveEvent extends Event {
    *
    * @param \Drupal\migrate\Entity\MigrationInterface $migration
    *   Migration entity.
+   * @param \Drupal\migrate\MigrateMessageInterface $message
+   *   The current migrate message service.
+   * @param \Drupal\migrate\Row $row
    */
-  public function __construct(MigrationInterface $migration, Row $row) {
+  public function __construct(MigrationInterface $migration, MigrateMessageInterface $message, Row $row) {
     $this->migration = $migration;
+    $this->message = $message;
     $this->row = $row;
   }
 
@@ -61,4 +73,13 @@ public function getRow() {
     return $this->row;
   }
 
+  /**
+   * Get the current destination message service.
+   *
+   * @return \Drupal\migrate\MigrateMessageInterface
+   */
+  public function getMessageService() {
+    return $this->message;
+  }
+
 }
diff --git a/core/modules/migrate/src/MigrateExecutable.php b/core/modules/migrate/src/MigrateExecutable.php
index 5d88cb6..f10b282 100644
--- a/core/modules/migrate/src/MigrateExecutable.php
+++ b/core/modules/migrate/src/MigrateExecutable.php
@@ -213,9 +213,9 @@ public function import() {
 
       if ($save) {
         try {
-          $this->getEventDispatcher()->dispatch(MigrateEvents::PRE_ROW_SAVE, new MigratePreRowSaveEvent($this->migration, $row));
+          $this->getEventDispatcher()->dispatch(MigrateEvents::PRE_ROW_SAVE, new MigratePreRowSaveEvent($this->migration, $this->message, $row));
           $destination_id_values = $destination->import($row, $id_map->lookupDestinationId($this->sourceIdValues));
-          $this->getEventDispatcher()->dispatch(MigrateEvents::POST_ROW_SAVE, new MigratePostRowSaveEvent($this->migration, $row, $destination_id_values));
+          $this->getEventDispatcher()->dispatch(MigrateEvents::POST_ROW_SAVE, new MigratePostRowSaveEvent($this->migration, $this->message, $row, $destination_id_values));
           if ($destination_id_values) {
             // We do not save an idMap entry for config.
             if ($destination_id_values !== TRUE) {
