diff --git a/core/src/main/java/google/registry/beam/rde/RdeIO.java b/core/src/main/java/google/registry/beam/rde/RdeIO.java
index 2058556f3..240ddd88d 100644
--- a/core/src/main/java/google/registry/beam/rde/RdeIO.java
+++ b/core/src/main/java/google/registry/beam/rde/RdeIO.java
@@ -248,6 +248,9 @@ public class RdeIO {
// Now that we're done, output roll the cursor forward.
if (key.manual()) {
logger.atInfo().log("Manual operation; not advancing cursor or enqueuing upload task.");
+ // Temporary measure to run RDE in beam in parallel with the daily MapReduce based RDE runs.
+ } else if (tm().isOfy()) {
+ logger.atInfo().log("Ofy is primary TM; not advancing cursor or enqueuing upload task.");
} else {
outputReceiver.output(KV.of(key, revision));
}
diff --git a/core/src/main/java/google/registry/env/production/default/WEB-INF/cron.xml b/core/src/main/java/google/registry/env/production/default/WEB-INF/cron.xml
index 14fe72328..96d525c3c 100644
--- a/core/src/main/java/google/registry/env/production/default/WEB-INF/cron.xml
+++ b/core/src/main/java/google/registry/env/production/default/WEB-INF/cron.xml
@@ -36,6 +36,19 @@
backend
+
+ /_dr/task/rdeStaging?beam=true
+
+ This job generates a full RDE escrow deposit as a single gigantic XML
+ document using the Beam pipeline regardless of the current TM
+ configuration and streams it to cloud storage. It does not trigger the
+ subsequent upload tasks and is meant to run parallel with the main cron
+ job in order to compare the results from both runs.
+
+ every 8 hours from 00:07 to 20:00
+ backend
+
+