diff --git a/core/core.services.yml b/core/core.services.yml
index a58f779..ed501b5 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -109,6 +109,8 @@ services:
     class: Drupal\Core\Config\DatabaseStorage
     arguments: ['@database', 'config']
     public: false
+    tags:
+      - { name: backend_overridable }
   config.storage.file:
     class: Drupal\Core\Config\FileStorage
     factory_class: Drupal\Core\Config\FileStorageFactory
@@ -121,6 +123,8 @@ services:
   config.storage.snapshot:
     class: Drupal\Core\Config\DatabaseStorage
     arguments: ['@database', config_snapshot]
+    tags:
+      - { name: backend_overridable }
   config.storage.schema:
     class: Drupal\Core\Config\ExtensionInstallStorage
     arguments: ['@config.storage', 'config/schema']
@@ -315,6 +319,8 @@ services:
     class: Drupal\Core\Menu\MenuTreeStorage
     arguments: ['@database', '@cache.menu', 'menu_tree']
     public: false  # Private to plugin.manager.menu.link and menu.link_tree
+    tags:
+      - { name: backend_overridable }
   menu_link.static.overrides:
     class: Drupal\Core\Menu\StaticMenuLinkOverrides
     arguments: ['@config.factory']
@@ -377,6 +383,8 @@ services:
   lock:
     class: Drupal\Core\Lock\DatabaseLockBackend
     arguments: ['@database']
+    tags:
+      - { name: backend_overridable }
   router.request_context:
     class: Symfony\Component\Routing\RequestContext
     tags:
@@ -389,6 +397,7 @@ services:
     arguments: ['@database', '@router.builder', '@state']
     tags:
       - { name: event_subscriber }
+      - { name: backend_overridable }
   router.route_preloader:
     class: Drupal\Core\Routing\RoutePreloader
     arguments: ['@router.route_provider', '@state', '@content_negotiation']
@@ -437,12 +446,16 @@ services:
   entity.query.sql:
     class: Drupal\Core\Entity\Query\Sql\QueryFactory
     arguments: ['@database']
+    tags:
+      - { name: backend_overridable }
   entity.query.keyvalue:
     class: Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
     arguments: ['@keyvalue']
   router.dumper:
     class: Drupal\Core\Routing\MatcherDumper
     arguments: ['@database', '@state']
+    tags:
+      - { name: backend_overridable }
   router.builder:
     class: Drupal\Core\Routing\RouteBuilder
     arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@state']
@@ -459,6 +472,8 @@ services:
   path.alias_storage:
     class: Drupal\Core\Path\AliasStorage
     arguments: ['@database', '@module_handler']
+    tags:
+      - { name: backend_overridable }
   path.matcher:
     class: Drupal\Core\Path\PathMatcher
     arguments: ['@config.factory']
@@ -728,6 +743,8 @@ services:
   flood:
     class: Drupal\Core\Flood\DatabaseBackend
     arguments: ['@database', '@request_stack']
+    tags:
+      - { name: backend_overridable }
   plugin.manager.mail:
     class: Drupal\Core\Mail\MailManager
     arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory']
@@ -765,6 +782,8 @@ services:
   batch.storage:
     class: Drupal\Core\Batch\BatchStorage
     arguments: ['@database']
+    tags:
+      - { name: backend_overridable }
   replica_database_ignore__subscriber:
     class: Drupal\Core\EventSubscriber\ReplicaDatabaseIgnoreSubscriber
     tags:
@@ -847,6 +866,8 @@ services:
   session_manager:
     class: Drupal\Core\Session\SessionManager
     arguments: ['@request_stack', '@database', '@session_manager.metadata_bag', '@settings']
+    tags:
+      - { name: backend_overridable }
   session_manager.metadata_bag:
     class: Drupal\Core\Session\MetadataBag
     arguments: ['@settings']
diff --git a/core/modules/ban/ban.services.yml b/core/modules/ban/ban.services.yml
index 7f55ae6..4f5b28d 100644
--- a/core/modules/ban/ban.services.yml
+++ b/core/modules/ban/ban.services.yml
@@ -2,6 +2,8 @@ services:
   ban.ip_manager:
     class: Drupal\ban\BanIpManager
     arguments: ['@database']
+    tags:
+      - { name: backend_overridable }
   ban.subscriber:
     class: Drupal\ban\EventSubscriber\BanSubscriber
     tags:
diff --git a/core/modules/book/book.services.yml b/core/modules/book/book.services.yml
index 8dc0ec4..b86f44f 100644
--- a/core/modules/book/book.services.yml
+++ b/core/modules/book/book.services.yml
@@ -7,6 +7,8 @@ services:
   book.manager:
     class: Drupal\book\BookManager
     arguments: ['@database', '@entity.manager', '@string_translation', '@config.factory']
+    tags:
+      - { name: backend_overridable }
   book.outline:
     class: Drupal\book\BookOutline
     arguments: ['@book.manager']
diff --git a/core/modules/comment/comment.services.yml b/core/modules/comment/comment.services.yml
index 94540d1..18405ac 100644
--- a/core/modules/comment/comment.services.yml
+++ b/core/modules/comment/comment.services.yml
@@ -12,6 +12,8 @@ services:
   comment.statistics:
     class: Drupal\comment\CommentStatistics
     arguments: ['@database', '@current_user', '@entity.manager', '@state']
+    tags:
+      - { name: backend_overridable }
 
   comment.post_render_cache:
     class: Drupal\comment\CommentPostRenderCache
diff --git a/core/modules/dblog/dblog.services.yml b/core/modules/dblog/dblog.services.yml
index 38836e1..96ac2ee 100644
--- a/core/modules/dblog/dblog.services.yml
+++ b/core/modules/dblog/dblog.services.yml
@@ -4,3 +4,4 @@ services:
     arguments: ['@database', '@logger.log_message_parser']
     tags:
       - { name: logger }
+      - { name: backend_overridable }
diff --git a/core/modules/file/file.services.yml b/core/modules/file/file.services.yml
index 2ded051..1c463af 100644
--- a/core/modules/file/file.services.yml
+++ b/core/modules/file/file.services.yml
@@ -2,3 +2,5 @@ services:
   file.usage:
     class: Drupal\file\FileUsage\DatabaseFileUsageBackend
     arguments: ['@database']
+    tags:
+      - { name: backend_overridable }
diff --git a/core/modules/forum/forum.services.yml b/core/modules/forum/forum.services.yml
index 92f04af..d5c0fe3 100644
--- a/core/modules/forum/forum.services.yml
+++ b/core/modules/forum/forum.services.yml
@@ -2,6 +2,8 @@ services:
   forum_manager:
     class: Drupal\forum\ForumManager
     arguments: ['@config.factory', '@entity.manager', '@database', '@string_translation', '@comment.manager']
+    tags:
+      - { name: backend_overridable }
   forum.breadcrumb.node:
     class: Drupal\forum\Breadcrumb\ForumNodeBreadcrumbBuilder
     arguments: ['@entity.manager', '@config.factory', '@forum_manager']
@@ -15,3 +17,5 @@ services:
   forum.index_storage:
     class: Drupal\forum\ForumIndexStorage
     arguments: ['@database', '@forum_manager']
+    tags:
+      - { name: backend_overridable }
diff --git a/core/modules/locale/locale.services.yml b/core/modules/locale/locale.services.yml
index 7a0ced3..8268608 100644
--- a/core/modules/locale/locale.services.yml
+++ b/core/modules/locale/locale.services.yml
@@ -5,6 +5,8 @@ services:
   locale.storage:
     class: Drupal\locale\StringDatabaseStorage
     arguments: ['@database']
+    tags:
+      - { name: backend_overridable }
   string_translator.locale.lookup:
     class: Drupal\locale\LocaleTranslation
     arguments: ['@locale.storage', '@cache.default', '@lock', '@config.factory', '@language_manager']
diff --git a/core/modules/node/node.services.yml b/core/modules/node/node.services.yml
index 69cadb2..85d998a 100644
--- a/core/modules/node/node.services.yml
+++ b/core/modules/node/node.services.yml
@@ -6,11 +6,14 @@ services:
   node.grant_storage:
     class: Drupal\node\NodeGrantDatabaseStorage
     arguments: ['@database', '@module_handler']
+    tags:
+      - { name: backend_overridable }
   access_check.node.revision:
     class: Drupal\node\Access\NodeRevisionAccessCheck
     arguments: ['@entity.manager', '@database']
     tags:
       - { name: access_check, applies_to: _access_node_revision }
+      - { name: backend_overridable }
   access_check.node.add:
     class: Drupal\node\Access\NodeAddAccessCheck
     arguments: ['@entity.manager']
diff --git a/core/modules/system/system.services.yml b/core/modules/system/system.services.yml
index 9e09d19..a5b94ce 100644
--- a/core/modules/system/system.services.yml
+++ b/core/modules/system/system.services.yml
@@ -6,6 +6,8 @@ services:
   system.manager:
     class: Drupal\system\SystemManager
     arguments: ['@module_handler', '@database', '@entity.manager', '@request_stack', '@menu.link_tree', '@menu.active_trail']
+    tags:
+      - { name: backend_overridable }
   system.breadcrumb.default:
     class: Drupal\system\PathBasedBreadcrumbBuilder
     arguments: ['@router.request_context', '@access_manager', '@router', '@path_processor_manager', '@config.factory',  '@title_resolver', '@current_user']
diff --git a/core/modules/user/user.services.yml b/core/modules/user/user.services.yml
index c703c0b..852a983 100644
--- a/core/modules/user/user.services.yml
+++ b/core/modules/user/user.services.yml
@@ -33,6 +33,8 @@ services:
   user.data:
     class: Drupal\user\UserData
     arguments: ['@database']
+    tags:
+      - { name: backend_overridable }
   user.autocomplete:
     class: Drupal\user\UserAutocomplete
     arguments: ['@config.factory', '@entity.manager', '@entity.query']
@@ -55,6 +57,8 @@ services:
   user.tempstore:
     class: Drupal\user\TempStoreFactory
     arguments: ['@serialization.phpserialize', '@database', '@lock', '%user.tempstore.expire%']
+    tags:
+      - { name: backend_overridable }
 
 parameters:
   user.tempstore.expire: 604800
