diff --git a/aws-xray-client-persistent.cabal b/aws-xray-client-persistent.cabal
--- a/aws-xray-client-persistent.cabal
+++ b/aws-xray-client-persistent.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.12
 name:               aws-xray-client-persistent
-version:            0.1.0.2
+version:            0.1.0.4
 license:            MIT
 copyright:          2021 Renaissance Learning Inc
 maintainer:         engineering@freckle.com
@@ -36,12 +36,12 @@
 
     build-depends:
         aws-xray-client >=0.1.0.1,
-        base >=4.14.1.0 && <5,
-        conduit >=1.3.4.1,
-        containers >=0.6.2.1,
+        base >=4.14.3.0 && <5,
+        conduit >=1.3.4.2,
+        containers >=0.6.5.1,
         lens >=4.19.2,
-        persistent >=2.13.0.2,
+        persistent >=2.13.3.0,
         random >=1.2.0,
-        resourcet >=1.2.4.2,
+        resourcet >=1.2.4.3,
         text >=1.2.4.1,
         time >=1.9.3
diff --git a/library/Network/AWS/XRayClient/Persistent.hs b/library/Network/AWS/XRayClient/Persistent.hs
--- a/library/Network/AWS/XRayClient/Persistent.hs
+++ b/library/Network/AWS/XRayClient/Persistent.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
 module Network.AWS.XRayClient.Persistent
   ( xraySqlBackend
   ) where
@@ -15,7 +17,10 @@
 import Database.Persist
 import Database.Persist.Sql
 import Database.Persist.Sql.Types.Internal
-  (IsPersistBackend(mkPersistBackend), SqlBackend(..))
+#if MIN_VERSION_persistent(2,13,3)
+import Database.Persist.SqlBackend.StatementCache
+  (StatementCache, mkSimpleStatementCache, mkStatementCache)
+#endif
 import Network.AWS.XRayClient.Segment
 import Network.AWS.XRayClient.TraceId
 import System.Random
@@ -47,7 +52,7 @@
       , connBegin = binaryTimerWrapper "BEGIN" (connBegin backend)
       , connCommit = unaryTimerWrapper "COMMIT" (connCommit backend)
       , connRollback = unaryTimerWrapper "ROLLBACK" (connRollback backend)
-      , connStmtMap = newConnStmtMap
+      , connStmtMap = mkCache newConnStmtMap
       }
 
   connPrepare' baseConnPrepare sql = do
@@ -115,3 +120,11 @@
     $ xraySubsegment subsegmentName segmentId startTime (Just endTime)
     & xraySegmentSql
     ?~ (xraySegmentSqlDef & xraySegmentSqlSanitizedQuery ?~ sql)
+
+#if MIN_VERSION_persistent(2,13,3)
+mkCache :: IORef (Map.Map Text Statement) -> StatementCache
+mkCache = mkStatementCache . mkSimpleStatementCache
+#else
+mkCache :: IORef (Map.Map Text Statement) -> IORef (Map.Map Text Statement)
+mkCache = id
+#endif
