diff --git a/swh/Chart.yaml b/swh/Chart.yaml
index 42b0715848cbd8e71ec66d1235fe0d38ab9f0711..ddd11276d6d1d6e592f1f744a0219199ce175d6f 100644
--- a/swh/Chart.yaml
+++ b/swh/Chart.yaml
@@ -1,5 +1,5 @@
 apiVersion: v2
-appVersion: 438
+appVersion: 439
 description: A Helm chart to deploy the softwareheritage stack
 name: swh
 type: application
diff --git a/swh/values/staging/next-version.yaml b/swh/values/staging/next-version.yaml
index 551c5a4437ee12762928044ff618b35478f8ba11..82e697fcdfa638629ba66b2340b5cd52b1d52020 100644
--- a/swh/values/staging/next-version.yaml
+++ b/swh/values/staging/next-version.yaml
@@ -121,14 +121,19 @@ remoteROPostgresqlStorageConfiguration:
   url: http://storage-ro-postgresql:5002
   enable_requests_retry: true
 
-remoteCassandraStorageConfiguration:
+remoteROCassandraStorageConfiguration:
+  cls: remote
+  url: http://storage-ro-cassandra:5002
+  enable_requests_retry: true
+
+remoteRWCassandraStorageConfiguration:
   cls: remote
   url: http://storage-rw-cassandra:5002
   enable_requests_retry: true
 
 remoteRWStorageWithPipelineConfiguration:
   pipelineStepsRef: storagePipelineSteps
-  storageConfigurationRef: remoteCassandraStorageConfiguration
+  storageConfigurationRef: remoteRWCassandraStorageConfiguration
 
 rwStoragePostgresqlConfiguration:
   storageConfigurationRef: postgresqlRWStorageConfiguration
@@ -299,6 +304,32 @@ loaders:
         queueThreshold: 1
         maxReplicaCount: 1
         stopWhenNoActivity: false
+    save-code-now:
+      queues:
+        - save_code_now:swh.loader.bzr.tasks.LoadBazaar
+        - save_code_now:swh.loader.cvs.tasks.LoadCvsRepository
+        - save_code_now:swh.loader.git.tasks.UpdateGitRepository
+        - save_code_now:swh.loader.git.tasks.LoadDiskGitRepository
+        - save_code_now:swh.loader.git.tasks.UncompressAndLoadDiskGitRepository
+        - save_code_now:swh.loader.mercurial.tasks.LoadArchiveMercurial
+        - save_code_now:swh.loader.mercurial.tasks.LoadMercurial
+        - save_code_now:swh.loader.svn.tasks.LoadSvnRepository
+        - save_code_now:swh.loader.svn.tasks.MountAndLoadSvnRepository
+        - save_code_now:swh.loader.svn.tasks.DumpMountAndLoadSvnRepository
+        - save_code_now:swh.loader.package.archive.tasks.LoadTarball
+      ackLate: true
+      autoScaling:
+        stopWhenNoActivity: true
+        queueThreshold: 1
+        minReplicaCount: 0
+        maxReplicaCount: 2
+      requestedMemory: 200Mi
+      requestedCpu: 50m
+      limitedMemory: 15Gi
+      tmpEphemeralStorage:
+        emptyDir:
+          medium: Memory
+          sizeLimit: 10Gi
     svn:
       enabled: true
       queues:
@@ -527,7 +558,7 @@ storageReplayer:
 cassandraSeeds:
   - cassandra-cluster-next-version-service
 
-cassandraStorage: &cassandraStorage
+rwCassandraStorage: &rwCassandraStorage
   cls: cassandra
   cassandraSeedsRef: cassandraSeeds
   keyspace: swh
@@ -547,6 +578,25 @@ cassandraStorage: &cassandraStorage
       secretKeyRef: cassandra-cluster-superuser
       secretKeyName: password
 
+roCassandraStorage:
+  cls: cassandra
+  cassandraSeedsRef: cassandraSeeds
+  keyspace: swh
+  initKeyspace: false
+  consistencyLevel: LOCAL_QUORUM
+  authProvider:
+    cls: cassandra.auth.PlainTextAuthProvider
+    username: ${CASSANDRA_RW_USERNAME}
+    password: ${CASSANDRA_RW_PASSWORD}
+  secrets:
+    # TODO: deploy a real cassandra RO user
+    CASSANDRA_RW_USERNAME:
+      secretKeyRef: cassandra-cluster-superuser
+      secretKeyName: username
+    CASSANDRA_RW_PASSWORD:
+      secretKeyRef: cassandra-cluster-superuser
+      secretKeyName: password
+
 noopObjstorageConfiguration:
   cls: noop
 
@@ -615,29 +665,6 @@ objstorage:
       # check readWriteStorageConfiguration example to configure your storage
       objstorageConfigurationRef: pathslicingRWObjstorageConfiguration
 
-    # Activate dedicated instance for read workload
-    ro-pathslicing:
-      enabled: true
-      nodeSelector:
-        kubernetes.io/hostname: rancher-node-staging-rke2-metal01
-      extraVolumes:
-        pathslicing-ro:
-          mountPath: /srv/swh/objects
-          readOnly: true
-          volumeDefinition:
-            ephemeral:
-              volumeClaimTemplate:
-                metadata:
-                  labels:
-                    type: persistent-volume
-                spec:
-                  accessModes:
-                  - ReadWriteOnce
-                  resources:
-                    requests:
-                      storage: 10Gi
-                  storageClassName: local-persistent
-
       # mandatory
       # check readWriteStorageConfiguration example to configure your storage
       objstorageConfigurationRef: pathslicingROObjstorageConfiguration
@@ -647,25 +674,24 @@ rpcRWObjstoragePathslicingConfiguration:
   url: http://objstorage-rw-pathslicing:5003
   enable_requests_retry: true
 
-rpcROObjstoragePathslicingConfiguration:
-  cls: remote
-  url: http://objstorage-ro-pathslicing:5003
-  enable_requests_retry: true
-
-rwStorageCassandraWithJournalConfiguration:
-  storageConfigurationRef: cassandraStorage
+rwCassandraStorageWithJournalConfiguration:
+  storageConfigurationRef: rwCassandraStorage
   journalWriterConfigurationRef: storageJournalWriterConfiguration
   objstorageConfigurationRef: rpcRWObjstoragePathslicingConfiguration
 
+roCassandraStorageConfiguration:
+  storageConfigurationRef: roCassandraStorage
+  # TODO: Use a RO objstorage
+  objstorageConfigurationRef: rpcRWObjstoragePathslicingConfiguration
 
-cassandraStorageForReferenceTableJob:
-  <<: *cassandraStorage
+rwCassandraStorageForReferenceTableJob:
+  <<: *rwCassandraStorage
   specificOptions:
     table_options:
       object_references_*: "compression = {'class': 'ZstdCompressor', 'compression_level':'19'} AND compaction = {'class': 'UnifiedCompactionStrategy'}"
 
-rwCassandraStorageForReferenceTableJob:
-  storageConfigurationRef: cassandraStorageForReferenceTableJob
+roCassandraStorageForReferenceTableJob:
+  storageConfigurationRef: rwCassandraStorageForReferenceTableJob
   objstorageConfigurationRef: noopObjstorageConfiguration
 
 storage:
@@ -673,7 +699,7 @@ storage:
   deployments:
     # main storage to let the loaders write
     rw-cassandra:
-      storageConfigurationRef: rwStorageCassandraWithJournalConfiguration
+      storageConfigurationRef: rwCassandraStorageWithJournalConfiguration
       cronjobs:
         create-object-reference-partitions:
           enabled: false
@@ -681,7 +707,13 @@ storage:
           logLevel: INFO
           cron: 5 0 * * mon
           concurrencyPolicy: Forbid
-    # a storage postgresql instance to replay data
+    # RO cassandra storage, for webapp
+    ro-cassandra:
+      storageConfigurationRef: roCassandraStorageConfiguration
+      autoScaling:
+        minReplicaCount: 1
+        maxReplicaCount: 1
+    # storage postgresql instance to replay data
     rw-postgresql:
       enabled: true
       storageConfigurationRef: rwStoragePostgresqlConfiguration
@@ -728,7 +760,7 @@ web:
       indexerStorageConfigurationRef: remoteIndexerStorageConfiguration
       countersConfigurationRef: remoteCountersConfiguration
       historyCountersUrlRef: historyCountersUrl
-      storageConfigurationRef: remoteROPostgresqlStorageConfiguration
+      storageConfigurationRef: remoteROCassandraStorageConfiguration
       webhooksConfigurationRef: webhooksConfiguration
       provenanceConfigurationRef: provenanceConfiguration
       graphConfigurationRef: webGraphConfiguration
@@ -1063,7 +1095,7 @@ indexers:
   storageConfigurationRef: remoteROStorageConfiguration
   schedulerConfigurationRef: remoteSchedulerConfiguration
   indexerStorageConfigurationRef: remoteIndexerStorageConfiguration
-  objstorageConfigurationRef: rpcROObjstoragePathslicingConfiguration
+  objstorageConfigurationRef: rpcRWObjstoragePathslicingConfiguration
   journalClientConfigurationRef: indexerJournalClientConfiguration
   deployments:
     origin-intrinsic:
@@ -1155,7 +1187,7 @@ deposit:
   # In prod this storage is read-only
   storageConfigurationRef: remoteROPostgresqlStorageConfiguration
   # XXX: but this one is read-write?
-  storageMetadataConfigurationRef: remoteCassandraStorageConfiguration
+  storageMetadataConfigurationRef: remoteRWCassandraStorageConfiguration
   djangoConfigurationRef: djangoDepositConfiguration
   blobstorageConfigurationRef: azureDepositConfiguration
   keycloakConfigurationRef: keycloakConfiguration
diff --git a/values-swh-application-versions.yaml b/values-swh-application-versions.yaml
index ce10db22dc2aa93206be1a96550b4283cf5f8e22..9b6ea6dfc2e832935d33547276923a1e6ec63341 100644
--- a/values-swh-application-versions.yaml
+++ b/values-swh-application-versions.yaml
@@ -7,9 +7,9 @@ swh_alter_image_version: '20250220.1'
 swh_counters_image: container-registry.softwareheritage.org/swh/infra/swh-apps/counters
 swh_counters_image_version: '20250211.2'
 swh_deposit_checkers_image: container-registry.softwareheritage.org/swh/infra/swh-apps/deposit_checkers
-swh_deposit_checkers_image_version: '20250227.1'
+swh_deposit_checkers_image_version: '20250304.1'
 swh_deposit_image: container-registry.softwareheritage.org/swh/infra/swh-apps/deposit
-swh_deposit_image_version: '20250227.1'
+swh_deposit_image_version: '20250304.1'
 swh_graph_image: container-registry.softwareheritage.org/swh/infra/swh-apps/graph
 swh_graph_image_version: '20250211.3'
 swh_graphql_image: container-registry.softwareheritage.org/swh/infra/swh-apps/graphql