diff --git a/eventful-postgresql.cabal b/eventful-postgresql.cabal
--- a/eventful-postgresql.cabal
+++ b/eventful-postgresql.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           eventful-postgresql
-version:        0.1.1
+version:        0.1.2
 synopsis:       Postgres implementations for eventful
 description:    Postgres implementations for eventful
 category:       Database,Eventsourcing,PostgreSQL
@@ -27,7 +27,6 @@
 library
   hs-source-dirs:
       src
-  default-extensions: ConstraintKinds DeriveFunctor DeriveGeneric FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving MultiParamTypeClasses OverloadedStrings QuasiQuotes RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TemplateHaskell TupleSections TypeFamilies
   ghc-options: -Wall
   build-depends:
       base >= 4.9 && < 5
@@ -37,7 +36,6 @@
     , bytestring
     , mtl
     , persistent
-    , persistent-postgresql
     , text
   exposed-modules:
       Eventful.Store.Postgresql
@@ -49,7 +47,6 @@
   hs-source-dirs:
       tests
       src
-  default-extensions: ConstraintKinds DeriveFunctor DeriveGeneric FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving MultiParamTypeClasses OverloadedStrings QuasiQuotes RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TemplateHaskell TupleSections TypeFamilies
   ghc-options: -Wall
   build-depends:
       base >= 4.9 && < 5
@@ -59,11 +56,11 @@
     , bytestring
     , mtl
     , persistent
-    , persistent-postgresql
     , text
     , hspec
     , HUnit
     , eventful-test-helpers
+    , persistent-postgresql
   other-modules:
       Eventful.Store.PostgresqlSpec
       HLint
@@ -75,7 +72,6 @@
   main-is: HLint.hs
   hs-source-dirs:
       tests
-  default-extensions: ConstraintKinds DeriveFunctor DeriveGeneric FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving MultiParamTypeClasses OverloadedStrings QuasiQuotes RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TemplateHaskell TupleSections TypeFamilies
   ghc-options: -Wall
   build-depends:
       base >= 4.9 && < 5
@@ -85,7 +81,6 @@
     , bytestring
     , mtl
     , persistent
-    , persistent-postgresql
     , text
     , hlint
   other-modules:
diff --git a/src/Eventful/Store/Postgresql.hs b/src/Eventful/Store/Postgresql.hs
--- a/src/Eventful/Store/Postgresql.hs
+++ b/src/Eventful/Store/Postgresql.hs
@@ -1,3 +1,7 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE TypeFamilies #-}
+
 -- | Defines an Postgresql event store.
 
 module Eventful.Store.Postgresql
@@ -26,7 +30,7 @@
   let
     getLatestVersion = sqlMaxEventVersion config maxPostgresVersionSql
     getEvents = sqlGetAggregateEvents config
-    storeEvents' = sqlStoreEvents config maxPostgresVersionSql
+    storeEvents' = sqlStoreEvents config (Just tableLockFunc) maxPostgresVersionSql
     storeEvents = transactionalExpectedWriteHelper getLatestVersion storeEvents'
   in EventStore{..}
 
@@ -42,3 +46,16 @@
   _ <- liftIO $ runSqlPool (runMigrationSilent migrateSqlEvent) pool
 
   return ()
+
+-- | We need to lock the events table or else our global sequence number might
+-- not be monotonically increasing over time from the point of view of a
+-- reader.
+--
+-- For example, say transaction A begins to write an event and the
+-- auto-increment key is 1. Then, transaction B starts to insert an event and
+-- gets an id of 2. If transaction B is quick and completes, then a listener
+-- might see the event from B and thinks it has all the events up to a sequence
+-- number of 2. However, once A finishes and the event with the id of 1 is
+-- done, then the listener won't know that event exists.
+tableLockFunc :: Text -> Text
+tableLockFunc tableName = "LOCK " <> tableName <> " IN EXCLUSIVE MODE"
diff --git a/tests/Eventful/Store/PostgresqlSpec.hs b/tests/Eventful/Store/PostgresqlSpec.hs
--- a/tests/Eventful/Store/PostgresqlSpec.hs
+++ b/tests/Eventful/Store/PostgresqlSpec.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE OverloadedStrings #-}
+
 module Eventful.Store.PostgresqlSpec (spec) where
 
 import Control.Monad.Reader (ask)
