diff -Nuar a/app/code/Magento/CatalogRuleGraphQl/README.md b/app/code/Magento/CatalogRuleGraphQl/README.md
new file mode 100644
index 00000000000..13a8f4a62e9
--- /dev/null
+++ b/app/code/Magento/CatalogRuleGraphQl/README.md
@@ -0,0 +1,3 @@
+# CatalogRuleGraphQl
+
+The *Magento_CatalogRuleGraphQl* module applies catalog rules to products for GraphQL requests.
diff -Nuar a/app/code/Magento/CatalogRuleGraphQl/composer.json b/app/code/Magento/CatalogRuleGraphQl/composer.json
new file mode 100644
index 00000000000..f2aae6c79d1
--- /dev/null
+++ b/app/code/Magento/CatalogRuleGraphQl/composer.json
@@ -0,0 +1,24 @@
+{
+  "name": "magento/module-catalog-rule-graph-ql",
+  "description": "N/A",
+  "type": "magento2-module",
+  "require": {
+    "php": "~7.1.3||~7.2.0||~7.3.0",
+    "magento/framework": "*"
+  },
+  "suggest": {
+    "magento/module-catalog-rule": "*"
+  },
+  "license": [
+    "OSL-3.0",
+    "AFL-3.0"
+  ],
+  "autoload": {
+    "files": [
+      "registration.php"
+    ],
+    "psr-4": {
+      "Magento\\CatalogRuleGraphQl\\": ""
+    }
+  }
+}
diff -Nuar a/app/code/Magento/CatalogRuleGraphQl/etc/graphql/events.xml b/app/code/Magento/CatalogRuleGraphQl/etc/graphql/events.xml
new file mode 100644
index 00000000000..0d0a1fef535
--- /dev/null
+++ b/app/code/Magento/CatalogRuleGraphQl/etc/graphql/events.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
+    <event name="catalog_product_get_final_price">
+        <observer name="catalogrule" instance="Magento\CatalogRule\Observer\ProcessFrontFinalPriceObserver" />
+    </event>
+    <event name="prepare_catalog_product_collection_prices">
+        <observer name="catalogrule" instance="Magento\CatalogRule\Observer\PrepareCatalogProductCollectionPricesObserver" />
+    </event>
+</config>
diff -Nuar a/app/code/Magento/CatalogRuleGraphQl/etc/module.xml b/app/code/Magento/CatalogRuleGraphQl/etc/module.xml
new file mode 100644
index 00000000000..affc22f35a7
--- /dev/null
+++ b/app/code/Magento/CatalogRuleGraphQl/etc/module.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
+    <module name="Magento_CatalogRuleGraphQl" />
+</config>
diff -Nuar a/app/code/Magento/CatalogRuleGraphQl/registration.php b/app/code/Magento/CatalogRuleGraphQl/registration.php
new file mode 100644
index 00000000000..df4dcd1cb47
--- /dev/null
+++ b/app/code/Magento/CatalogRuleGraphQl/registration.php
@@ -0,0 +1,9 @@
+<?php
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+use Magento\Framework\Component\ComponentRegistrar;
+
+ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Magento_CatalogRuleGraphQl', __DIR__);
