diff --git a/katip-rollbar.cabal b/katip-rollbar.cabal
--- a/katip-rollbar.cabal
+++ b/katip-rollbar.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: db432a9dd33cf06f56b98b41c89dc117a89b969e581b082f0619dd16b716a941
+-- hash: a493aa087b8743c3c495d0201c9a4a7ea6b7ee372660f60b38801435694ec71d
 
 name:           katip-rollbar
-version:        0.2.0.0
+version:        0.3.0.0
 synopsis:       Katip scribe that logs to Rollbar
 category:       Logging
 homepage:       https://github.com/joneshf/katip-rollbar#readme
diff --git a/src/Katip/Scribes/Rollbar.hs b/src/Katip/Scribes/Rollbar.hs
--- a/src/Katip/Scribes/Rollbar.hs
+++ b/src/Katip/Scribes/Rollbar.hs
@@ -6,11 +6,12 @@
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TypeOperators       #-}
 
-module Katip.Scribes.Rollbar where
+module Katip.Scribes.Rollbar
+  ( mkRollbarScribe
+  ) where
 
 import Prelude hiding (error)
 
-import "base" Control.Concurrent.MVar (MVar, newEmptyMVar, putMVar, takeMVar)
 import "base" Control.Monad           (replicateM, when)
 import "base" Data.Foldable           (for_)
 import "base" Data.Functor            (void)
@@ -70,10 +71,10 @@
 import qualified "katip" Katip
 
 queueSize :: Int
-queueSize = 10
+queueSize = 4096
 
 workerSize :: Int
-workerSize = 3
+workerSize = 10
 
 mkRollbarScribe ::
   RemoveHeaders headers =>
@@ -81,20 +82,19 @@
   AccessToken ->
   Maybe Branch ->
   Maybe CodeVersion ->
-  Manager ->
+  Manager -> -- ^ Must support TLS
   Severity ->
   Verbosity ->
   IO Scribe
 mkRollbarScribe proxy accessToken branch codeVersion manager severity verbosity = do
   queue <- newTBMQueueIO queueSize
-  finalize <- newEmptyMVar
-  setupWorkers proxy queue finalize manager
+  workers <- replicateM workerSize (async $ mkWorker proxy manager queue)
   let liPush item = when (permitItem severity item) $
         atomically (writeTBMQueue queue $ rollbarItem' item)
       rollbarItem' item = rollbarItem proxy accessToken branch codeVersion verbosity item
       scribeFinalizer = do
-        putMVar finalize ()
-        takeMVar finalize
+        atomically (closeTBMQueue queue)
+        for_ workers waitCatch
   pure Scribe { liPush, scribeFinalizer }
 
 rollbarItem ::
@@ -138,22 +138,6 @@
   timestamp = _itemTime item
   value :: Value
   value = itemJson verbosity item
-
--- | Setup the workers and wait until the finalizer is evaluated.
---   Then, close the queueu, wait for the workers and continue finalization.
-setupWorkers ::
-  RemoveHeaders headers =>
-  proxy headers ->
-  TBMQueue (Item Value ("Authorization" ': headers)) ->
-  MVar () ->
-  Manager ->
-  IO ()
-setupWorkers proxy queue finalize manager = void $ async $ do
-  workers <- replicateM workerSize (async $ mkWorker proxy manager queue)
-  takeMVar finalize
-  atomically (closeTBMQueue queue)
-  for_ workers waitCatch
-  putMVar finalize ()
 
 mkWorker ::
   (RemoveHeaders headers) =>
