diff --git a/core/modules/aggregator/aggregator.install b/core/modules/aggregator/aggregator.install
index 7c2ba73..accb437 100644
--- a/core/modules/aggregator/aggregator.install
+++ b/core/modules/aggregator/aggregator.install
@@ -35,6 +35,12 @@ function aggregator_schema() {
         'not null' => TRUE,
         'description' => 'Primary Key: Unique feed ID.',
       ),
+      'uuid' => array(
+        'description' => 'Unique Key: Universally unique identifier for this entity.',
+        'type' => 'varchar',
+        'length' => 128,
+        'not null' => FALSE,
+      ),
       'title' => array(
         'type' => 'varchar',
         'length' => 255,
@@ -231,3 +237,38 @@ function aggregator_update_8001() {
     'initial' => Language::LANGCODE_NOT_SPECIFIED,
   ));
 }
+
+/**
+ * Create a UUID column for aggregator feeds.
+ */
+function aggregator_update_8002() {
+  $spec = array(
+    'description' => 'Unique Key: Universally unique identifier for this entity.',
+    'type' => 'varchar',
+    'length' => 128,
+    'not null' => FALSE,
+  );
+  $keys = array(
+    'unique keys' => array(
+      'uuid' => array('uuid'),
+    ),
+  );
+
+  db_add_field('aggregator_feed', 'uuid', $spec, $keys);
+}
+
+/**
+ * Generate a UUID for all aggregator feeds.
+ */
+function aggregator_update_8003(&$sandbox) {
+  if (!isset($sandbox['progress'])) {
+    $sandbox['progress'] = 0;
+    $sandbox['last'] = 0;
+    $sandbox['max'] = db_query('SELECT COUNT(fid) FROM {aggregator_feed} WHERE uuid IS NULL')->fetchField();
+  }
+
+  $ids = db_query_range('SELECT fid FROM {aggregator_feed} WHERE fid > :fid AND uuid IS NULL ORDER BY fid ASC', 0, 10, array(':fid' => $sandbox['last']))->fetchCol();
+  update_add_uuids($sandbox, 'aggregator_feed', 'fid', $ids);
+
+  $sandbox['#finished'] = empty($sandbox['max']) ? 1 : ($sandbox['progress'] / $sandbox['max']);
+}
diff --git a/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php b/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php
index 01d6d7d..eb301bd 100644
--- a/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php
+++ b/core/modules/aggregator/lib/Drupal/aggregator/Entity/Feed.php
@@ -35,6 +35,7 @@
  *   entity_keys = {
  *     "id" = "fid",
  *     "label" = "title",
+ *     "uuid" = "uuid"
  *   }
  * )
  */
@@ -235,8 +236,10 @@ public static function baseFieldDefinitions($entity_type) {
       ->setDescription(t('The ID of the aggregator feed.'))
       ->setReadOnly(TRUE);
 
-    // @todo Add a UUID field for this entity type in
-    // https://drupal.org/node/2149841.
+    $fields['uuid'] = FieldDefinition::create('uuid')
+      ->setLabel(t('UUID'))
+      ->setDescription(t('The aggregator feed UUID.'))
+      ->setReadOnly(TRUE);
 
     $fields['title'] = FieldDefinition::create('string')
       ->setLabel(t('Title'))
