diff --git a/CHANGELOG b/CHANGELOG
index 4c68c836080fd0b9de6eb1a6ef94012ac77bd98f..9e3e9aa0fdfe652f96653576ecc8542ba7c7dd98 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -10,7 +10,6 @@ v 8.8.0 (unreleased)
   - Add 'l' shortcut to open Label dropdown on issuables and 'i' to create new issue on a project
   - Updated search UI
   - Display informative message when new milestone is created
-  - Replace Devise Async with Devise ActiveJob integration. !3902 (Connor Shea)
   - Allow "NEWS" and "CHANGES" as alternative names for CHANGELOG. !3768 (Connor Shea)
   - Added button to toggle whitespaces changes on diff view
   - Backport GitLab Enterprise support from EE
diff --git a/Gemfile b/Gemfile
index c10fe0a1c7c3043c14d1627860889f5a89f2c1c5..c3fcd8d3f24456f321482c30bf65a668979d3c95 100644
--- a/Gemfile
+++ b/Gemfile
@@ -20,6 +20,7 @@ gem "pg", '~> 0.18.2', group: :postgres
 # Authentication libraries
 gem 'devise',                 '~> 3.5.4'
 gem 'doorkeeper',             '~> 3.1'
+gem 'devise-async',           '~> 0.9.0'
 gem 'omniauth',               '~> 1.3.1'
 gem 'omniauth-auth0',         '~> 1.4.1'
 gem 'omniauth-azure-oauth2',  '~> 0.0.6'
diff --git a/Gemfile.lock b/Gemfile.lock
index b19dc5b6d20de53d91f74066122f293e703f6280..d58d8535cdcf921b58b3a0f35e9400152cefdeb1 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -164,6 +164,8 @@ GEM
       responders
       thread_safe (~> 0.1)
       warden (~> 1.2.3)
+    devise-async (0.9.0)
+      devise (~> 3.2)
     devise-two-factor (2.0.1)
       activesupport
       attr_encrypted (~> 1.3.2)
@@ -920,6 +922,7 @@ DEPENDENCIES
   database_cleaner (~> 1.4.0)
   default_value_for (~> 3.0.0)
   devise (~> 3.5.4)
+  devise-async (~> 0.9.0)
   devise-two-factor (~> 2.0.0)
   diffy (~> 3.0.3)
   doorkeeper (~> 3.1)
diff --git a/app/models/user.rb b/app/models/user.rb
index b6f405c698191f7cc485200580a0b3d84cfe81b6..ab48f8f1960d28219bcb6387ffffa8e76490a9bf 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -91,7 +91,7 @@ class User < ActiveRecord::Base
   devise :two_factor_backupable, otp_number_of_backup_codes: 10
   serialize :otp_backup_codes, JSON
 
-  devise :lockable, :recoverable, :rememberable, :trackable,
+  devise :lockable, :async, :recoverable, :rememberable, :trackable,
     :validatable, :omniauthable, :confirmable, :registerable
 
   attr_accessor :force_random_password
diff --git a/config/initializers/devise_async.rb b/config/initializers/devise_async.rb
new file mode 100644
index 0000000000000000000000000000000000000000..05a1852cdbd9d141a757755983adc59ad467f3ca
--- /dev/null
+++ b/config/initializers/devise_async.rb
@@ -0,0 +1 @@
+Devise::Async.backend = :sidekiq