diff --git a/provider/partition-gcp/pom.xml b/provider/partition-gcp/pom.xml
index 5f44919f6716475668107cf823296969c7b27ae7..02a62c3524385ed8ac5738a925734847b5011a23 100644
--- a/provider/partition-gcp/pom.xml
+++ b/provider/partition-gcp/pom.xml
@@ -55,12 +55,6 @@
       <groupId>org.springframework.security</groupId>
       <artifactId>spring-security-oauth2-jose</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.springframework.data</groupId>
-      <artifactId>spring-data-commons</artifactId>
-      <version>2.1.10.RELEASE</version>
-      <scope>compile</scope>
-    </dependency>
     <dependency>
       <groupId>javax.inject</groupId>
       <artifactId>javax.inject</artifactId>
@@ -70,11 +64,6 @@
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.springframework.cloud</groupId>
-      <artifactId>spring-cloud-gcp-starter-data-datastore</artifactId>
-      <version>1.2.5.RELEASE</version>
-    </dependency>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-databind</artifactId>
diff --git a/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/PartitionGcpApplication.java b/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/PartitionGcpApplication.java
index d24a172c16d353242320bf53a26acdb9d7a661db..d61b123c99cb61348aab54d642aeed74fc366742 100644
--- a/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/PartitionGcpApplication.java
+++ b/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/PartitionGcpApplication.java
@@ -20,17 +20,13 @@ package org.opengroup.osdu.partition.provider.gcp;
 import org.opengroup.osdu.core.gcp.di.GcpPartitionClientFactory;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.gcp.data.datastore.repository.config.EnableDatastoreRepositories;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.FilterType;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 @ComponentScan(basePackages = {"org.opengroup.osdu"}, excludeFilters =
   @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {GcpPartitionClientFactory.class})
 )
 @SpringBootApplication
-@EnableDatastoreRepositories
-@EnableTransactionManagement
 public class PartitionGcpApplication {
 
   public static void main(String[] args) {
diff --git a/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/osm/config/resolver/OsmDatastoreDestinationResolver.java b/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/osm/config/resolver/OsmDatastoreDestinationResolver.java
index 45533358c4db83dcd6dd5456d9e075581b9b3ea1..faeb51096b563f9a574e65c08c2a841175e1b1c5 100644
--- a/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/osm/config/resolver/OsmDatastoreDestinationResolver.java
+++ b/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/osm/config/resolver/OsmDatastoreDestinationResolver.java
@@ -32,6 +32,7 @@ import org.springframework.stereotype.Component;
 import org.threeten.bp.Duration;
 
 import java.io.IOException;
+import java.util.Map;
 
 import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_SINGLETON;
 
@@ -43,7 +44,7 @@ public class OsmDatastoreDestinationResolver implements DsDestinationResolver {
 
     protected static final RetrySettings RETRY_SETTINGS = RetrySettings.newBuilder().setMaxAttempts(6).setInitialRetryDelay(Duration.ofSeconds(10L)).setMaxRetryDelay(Duration.ofSeconds(32L)).setRetryDelayMultiplier(2.0D).setTotalTimeout(Duration.ofSeconds(50L)).setInitialRpcTimeout(Duration.ofSeconds(50L)).setRpcTimeoutMultiplier(1.0D).setMaxRpcTimeout(Duration.ofSeconds(50L)).build();
     protected static final TransportOptions TRANSPORT_OPTIONS = HttpTransportOptions.newBuilder().setReadTimeout(30000).build();
-    private final Datastore partitionDatastore;
+    private final Map<String, Datastore> datastoreCache;
 
     /**
      * Takes provided Destination with partitionId set to needed tenantId, returns its TenantInfo.projectId.
@@ -54,17 +55,7 @@ public class OsmDatastoreDestinationResolver implements DsDestinationResolver {
     @Override
     public DsDestinationResolution resolve(Destination destination) {
         String projectId = destination.getPartitionId();
-
-        Datastore datastore =
-                partitionDatastore == null
-                        ? DatastoreOptions.newBuilder()
-                                    .setRetrySettings(RETRY_SETTINGS)
-                                    .setTransportOptions(TRANSPORT_OPTIONS)
-                                    .setProjectId(projectId)
-                                    .setNamespace(destination.getNamespace().getName())
-                                .build()
-                            .getService()
-                        : partitionDatastore;
+        Datastore datastore = datastoreCache.computeIfAbsent(projectId, key -> getDatastoreFor(destination, key, projectId));
 
         return DsDestinationResolution.builder()
                 .projectId(datastore.getOptions().getProjectId())
@@ -72,6 +63,17 @@ public class OsmDatastoreDestinationResolver implements DsDestinationResolver {
                 .build();
     }
 
+    private Datastore getDatastoreFor(Destination destination, String key, String projectId) {
+        return datastoreCache.computeIfAbsent(key, k ->
+                DatastoreOptions.newBuilder()
+                    .setRetrySettings(RETRY_SETTINGS)
+                    .setTransportOptions(TRANSPORT_OPTIONS)
+                    .setProjectId(projectId)
+                    .setNamespace(destination.getNamespace().getName())
+                    .build()
+                    .getService());
+    }
+
     @Override
     public void close() throws IOException {
         //Method stub
diff --git a/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/security/AuthorizationService.java b/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/security/AuthorizationService.java
index 2fe2c6198a81c525f74177f41581db8da604f360..7c60fad2c8d1ffb11d914653b23cce9a4cd6a0bc 100644
--- a/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/security/AuthorizationService.java
+++ b/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/security/AuthorizationService.java
@@ -71,7 +71,7 @@ public class AuthorizationService implements IAuthorizationService {
     } catch (AppException e){
       throw e;
     } catch (Exception ex) {
-      log.warn(String.format("User %s is not unauthorized. %s.", email, ex));
+      log.warn(String.format("User %s unauthorized. %s.", email, ex));
       throw AppException.createUnauthorized("Unauthorized. The JWT token could not be validated");
     }
   }
diff --git a/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/service/PartitionServiceImpl.java b/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/service/PartitionServiceImpl.java
index f625d9524ddd8e60c705f13b0898da0c4c636cb5..f564d236f71da8a7e7b63cbee4caf94b9ca24cf9 100644
--- a/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/service/PartitionServiceImpl.java
+++ b/provider/partition-gcp/src/main/java/org/opengroup/osdu/partition/provider/gcp/service/PartitionServiceImpl.java
@@ -29,16 +29,10 @@ import org.opengroup.osdu.partition.provider.gcp.model.PartitionPropertyEntity;
 import org.opengroup.osdu.partition.provider.gcp.osm.repository.OsmPartitionPropertyRepository;
 import org.opengroup.osdu.partition.provider.interfaces.IPartitionService;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 @Service
 @RequiredArgsConstructor
@@ -178,7 +172,6 @@ public class PartitionServiceImpl implements IPartitionService {
     }
   }
 
-  @Transactional
   @Override
   public boolean deletePartition(String partitionId) {
     if (!this.partitionPropertyEntityRepository.findByPartitionId(partitionId).isPresent()) {
@@ -195,16 +188,15 @@ public class PartitionServiceImpl implements IPartitionService {
     return true;
   }
 
-  @Transactional
   @Override
   public List<String> getAllPartitions() {
     List<String> partitions = partitionListCache.get(PARTITION_LIST_KEY);
 
     if (partitions == null) {
       List<String> allPartitions = this.partitionPropertyEntityRepository.getAllPartitions();
-      partitions = (allPartitions.isEmpty() ? null : allPartitions);
+      partitions = (allPartitions.isEmpty() ? Collections.emptyList() : allPartitions);
 
-      if (partitions != null) {
+      if (!CollectionUtils.isEmpty(partitions)) {
         partitionListCache.put(PARTITION_LIST_KEY, partitions);
       }
     }