diff --git a/record-and-playback/core/lib/recordandplayback/events_archiver.rb b/record-and-playback/core/lib/recordandplayback/events_archiver.rb
index fc7269c743cf6e785666406e279e78480bc73894..4bb13fdfe9f1f06a5b9b0133c81ffec3dab2a487 100755
--- a/record-and-playback/core/lib/recordandplayback/events_archiver.rb
+++ b/record-and-playback/core/lib/recordandplayback/events_archiver.rb
@@ -23,10 +23,11 @@ require 'builder'
 require 'yaml'
 require 'fileutils'
 
-module BigBlueButton  
+module BigBlueButton
   $bbb_props = YAML::load(File.open(File.expand_path('../../../scripts/bigbluebutton.yml', __FILE__)))
   $recording_dir = $bbb_props['recording_dir']
   $raw_recording_dir = "#{$recording_dir}/raw"
+  $store_recording_status = $bbb_props['store_recording_status']
 
   # Class to wrap Redis so we can mock
   # for testing
@@ -39,23 +40,23 @@ module BigBlueButton
         @redis = Redis.new(:host => @host, :port => @port, :password => @password)
       end
     end
-    
-    def connect      
-      @redis.client.connect    
+
+    def connect
+      @redis.client.connect
     end
-    
+
     def disconnect
       @redis.client.disconnect
     end
-    
+
     def connected?
       @redis.client.connected?
     end
-    
+
     def metadata_for(meeting_id)
       @redis.hgetall("meeting:info:#{meeting_id}")
     end
-    
+
     def has_breakout_metadata_for(meeting_id)
       @redis.exists("meeting:breakout:#{meeting_id}")
     end
@@ -63,7 +64,7 @@ module BigBlueButton
     def breakout_metadata_for(meeting_id)
       @redis.hgetall("meeting:breakout:#{meeting_id}")
     end
-    
+
     def has_breakout_rooms_for(meeting_id)
       @redis.exists("meeting:breakout:rooms:#{meeting_id}")
     end
@@ -75,11 +76,11 @@ module BigBlueButton
     def num_events_for(meeting_id)
       @redis.llen("meeting:#{meeting_id}:recordings")
     end
-    
+
     def events_for(meeting_id)
       @redis.lrange("meeting:#{meeting_id}:recordings", 0, num_events_for(meeting_id))
     end
-    
+
     def event_info_for(meeting_id, event)
       @redis.hgetall("recording:#{meeting_id}:#{event}")
     end
@@ -135,6 +136,7 @@ module BigBlueButton
     end
 
     RECORDINGS_CHANNEL = "bigbluebutton:from-rap"
+    RAP_STATUS_LIST = "bigbluebutton:rap:status"
 
     def put_message(message_type, meeting_id, additional_payload = {})
       events_xml = "#{$raw_recording_dir}/#{meeting_id}/events.xml"
@@ -149,6 +151,11 @@ module BigBlueButton
         "meeting_id" => meeting_id
       })
       @redis.publish RECORDINGS_CHANNEL, msg.to_json
+
+      if $store_recording_status
+        @redis.lpush RAP_STATUS_LIST, msg.to_json
+      end
+
     end
 
     def put_message_workflow(message_type, workflow, meeting_id, additional_payload = {})
@@ -221,7 +228,7 @@ module BigBlueButton
     MEETINGID = 'meetingId'
     MEETINGNAME = 'meetingName'
     ISBREAKOUT = 'isBreakout'
-    
+
     def initialize(redis)
       @redis = redis
     end
@@ -378,16 +385,16 @@ module BigBlueButton
     def delete_events(meeting_id)
       meeting_metadata = @redis.metadata_for(meeting_id)
       if (meeting_metadata != nil)
-        msgs = @redis.events_for(meeting_id)                      
+        msgs = @redis.events_for(meeting_id)
         msgs.each do |msg|
-          @redis.delete_event_info_for(meeting_id, msg) 
+          @redis.delete_event_info_for(meeting_id, msg)
         end
         @redis.delete_events_for(meeting_id)
       end
-      @redis.delete_metadata_for(meeting_id) 
-      @redis.delete_breakout_metadata_for(meeting_id) 
+      @redis.delete_metadata_for(meeting_id)
+      @redis.delete_breakout_metadata_for(meeting_id)
       @redis.delete_breakout_rooms_for(meeting_id)
     end
-    
+
   end
 end
diff --git a/record-and-playback/core/lib/recordandplayback/workers/archive_worker.rb b/record-and-playback/core/lib/recordandplayback/workers/archive_worker.rb
index 9f1058a2de1a52585318a553b34ff7184b13d8ee..747fbb79e1d89cc12638c4f43dae6768073b0fa4 100755
--- a/record-and-playback/core/lib/recordandplayback/workers/archive_worker.rb
+++ b/record-and-playback/core/lib/recordandplayback/workers/archive_worker.rb
@@ -27,12 +27,7 @@ module BigBlueButton
           @logger.info("Running archive worker for #{@full_id}")
           @publisher.put_archive_started(@meeting_id)
 
-          # Keep the status files so we can still track
-          # the recording progress. We need these at the moment
-          # for the monitoring tools to continue to work.
-          # We need to find a better way (storing in redis?)
-          # in the future to be able to monitor progress.
-          #remove_status_files
+          remove_status_files
 
           script = File.join(BigBlueButton.rap_scripts_path, 'archive', 'archive.rb')
           if @break_timestamp.nil?
diff --git a/record-and-playback/core/lib/recordandplayback/workers/process_worker.rb b/record-and-playback/core/lib/recordandplayback/workers/process_worker.rb
index 66fb0403132ac25714b072e3c6138b0e1af7d798..2f00d9a630665f435a9fe627ce28438565e46d25 100755
--- a/record-and-playback/core/lib/recordandplayback/workers/process_worker.rb
+++ b/record-and-playback/core/lib/recordandplayback/workers/process_worker.rb
@@ -29,12 +29,7 @@ module BigBlueButton
           script = File.join(BigBlueButton.rap_scripts_path,
                              'process', "#{@format_name}.rb")
           if File.exist?(script)
-            # Keep the status files so we can still track
-            # the recording progress. We need these at the moment
-            # for the monitoring tools to continue to work.
-            # We need to find a better way (storing in redis?)
-            # in the future to be able to monitor progress.
-            #remove_status_files
+            remove_status_files
 
             @publisher.put_process_started(@format_name, @meeting_id)
 
diff --git a/record-and-playback/core/lib/recordandplayback/workers/publish_worker.rb b/record-and-playback/core/lib/recordandplayback/workers/publish_worker.rb
index 6e658f14ec3d6c136eace80e8d666cc45cf5888f..5c676aa34b5bf4480afdddbc28c014afd31ef729 100755
--- a/record-and-playback/core/lib/recordandplayback/workers/publish_worker.rb
+++ b/record-and-playback/core/lib/recordandplayback/workers/publish_worker.rb
@@ -36,12 +36,7 @@ module BigBlueButton
             # If the publish directory exists, the script does nothing
             FileUtils.rm_rf("#{@recording_dir}/publish/#{@format_name}/#{@full_id}")
 
-            # Keep the status files so we can still track
-            # the recording progress. We need these at the moment
-            # for the monitoring tools to continue to work.
-            # We need to find a better way (storing in redis?)
-            # in the future to be able to monitor progress.
-            #remove_status_files
+            remove_status_files
 
             # For legacy reasons, the meeting ID passed to the publish script contains
             # the playback format name.
diff --git a/record-and-playback/core/lib/recordandplayback/workers/sanity_worker.rb b/record-and-playback/core/lib/recordandplayback/workers/sanity_worker.rb
index 04544bbfdb9541e721d8b183de0865dc88f853a0..16e7e5874c7ed91c9316714b1fc4619df33e05a3 100755
--- a/record-and-playback/core/lib/recordandplayback/workers/sanity_worker.rb
+++ b/record-and-playback/core/lib/recordandplayback/workers/sanity_worker.rb
@@ -27,12 +27,7 @@ module BigBlueButton
           @logger.info("Running sanity worker for #{@full_id}")
           @publisher.put_sanity_started(@meeting_id)
 
-          # Keep the status files so we can still track
-          # the recording progress. We need these at the moment
-          # for the monitoring tools to continue to work.
-          # We need to find a better way (storing in redis?)
-          # in the future to be able to monitor progress.
-          #remove_status_files
+          remove_status_files
 
           script = File.join(BigBlueButton.rap_scripts_path, 'sanity', 'sanity.rb')
           if @break_timestamp.nil?
diff --git a/record-and-playback/core/scripts/bigbluebutton.yml b/record-and-playback/core/scripts/bigbluebutton.yml
index b600778d231a37df98c993f299f920b500d68c65..8d58a20ddece0528e7d0d834664c7304204fa9f9 100755
--- a/record-and-playback/core/scripts/bigbluebutton.yml
+++ b/record-and-playback/core/scripts/bigbluebutton.yml
@@ -22,6 +22,12 @@ redis_port: 6379
 # redis_workers_host: 127.0.0.1
 # redis_workers_port: 6379
 
+# Set to true to insert recording process status into
+# redis list with key "store_recording_status: true".
+# This is useful if you want to track progress status
+# and have another script process it.
+store_recording_status: false
+
 # Sequence of recording steps. Keys are the current step, values
 # are the next step(s). Examples:
 #   current_step: next_step