diff --git a/core/api/src/main/java/org/onosproject/store/service/StorageService.java b/core/api/src/main/java/org/onosproject/store/service/StorageService.java
index 91cc273..b836ce8 100644
--- a/core/api/src/main/java/org/onosproject/store/service/StorageService.java
+++ b/core/api/src/main/java/org/onosproject/store/service/StorageService.java
@@ -63,9 +63,9 @@
     AtomicCounterBuilder atomicCounterBuilder();
 
     /**
-     * Creates a new transaction context.
+     * Creates a new transaction context builder.
      *
-     * @return transaction context
+     * @return a builder for a transaction context.
      */
-    TransactionContext createTransactionContext();
+    TransactionContextBuilder transactionContextBuilder();
 }
diff --git a/core/api/src/main/java/org/onosproject/store/service/TransactionContextBuilder.java b/core/api/src/main/java/org/onosproject/store/service/TransactionContextBuilder.java
new file mode 100644
index 0000000..4ae6b0f
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/store/service/TransactionContextBuilder.java
@@ -0,0 +1,32 @@
+package org.onosproject.store.service;
+
+/**
+ * Interface definition for a transaction context builder.
+ */
+public interface TransactionContextBuilder {
+
+    /**
+     * Disables distribution of map entries across multiple database partitions.
+     * <p>
+     * When partitioning is disabled, the returned map will have a single
+     * partition that spans the entire cluster. Furthermore, the changes made to
+     * the map are ephemeral and do not survive a full cluster restart.
+     * </p>
+     * <p>
+     * Note: By default, partitions are enabled. This feature is intended to
+     * simplify debugging.
+     * </p>
+     *
+     * @return this TransactionalContextBuilder
+     */
+    public TransactionContextBuilder withPartitionsDisabled();
+
+    /**
+     * Builds a TransactionContext based on configuration options supplied to this
+     * builder.
+     *
+     * @return a new TransactionalContext
+     * @throws java.lang.RuntimeException if a mandatory parameter is missing
+     */
+    public TransactionContext build();
+}
diff --git a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DatabaseManager.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DatabaseManager.java
index 7c4ddb5..71d1961 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DatabaseManager.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DatabaseManager.java
@@ -59,7 +59,7 @@
 import org.onosproject.store.service.StorageAdminService;
 import org.onosproject.store.service.StorageService;
 import org.onosproject.store.service.Transaction;
-import org.onosproject.store.service.TransactionContext;
+import org.onosproject.store.service.TransactionContextBuilder;
 import org.slf4j.Logger;
 
 import java.io.File;
@@ -217,8 +217,9 @@
     }
 
     @Override
-    public TransactionContext createTransactionContext() {
-        return new DefaultTransactionContext(partitionedDatabase, transactionIdGenerator.getNewId());
+    public TransactionContextBuilder transactionContextBuilder() {
+        return new DefaultTransactionContextBuilder(
+                inMemoryDatabase, partitionedDatabase, transactionIdGenerator.getNewId());
     }
 
     @Override
diff --git a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultTransactionContextBuilder.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultTransactionContextBuilder.java
new file mode 100644
index 0000000..a3484cf
--- /dev/null
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultTransactionContextBuilder.java
@@ -0,0 +1,37 @@
+package org.onosproject.store.consistent.impl;
+
+import org.onosproject.store.service.TransactionContext;
+import org.onosproject.store.service.TransactionContextBuilder;
+
+/**
+ * The default implementation of a transaction context builder. This builder
+ * generates a {@link DefaultTransactionContext}.
+ */
+public class DefaultTransactionContextBuilder implements TransactionContextBuilder {
+
+    private boolean partitionsEnabled = true;
+    private final Database partitionedDatabase;
+    private final Database inMemoryDatabase;
+    private final long transactionId;
+
+    public DefaultTransactionContextBuilder(
+            Database inMemoryDatabase, Database partitionedDatabase, long transactionId) {
+        this.partitionedDatabase = partitionedDatabase;
+        this.inMemoryDatabase = inMemoryDatabase;
+        this.transactionId = transactionId;
+    }
+
+    @Override
+    public TransactionContextBuilder withPartitionsDisabled() {
+        partitionsEnabled = false;
+        return this;
+    }
+
+    @Override
+    public TransactionContext build() {
+        return new DefaultTransactionContext(
+                partitionsEnabled ? partitionedDatabase : inMemoryDatabase,
+                transactionId);
+    }
+
+}
