diff --git a/amazonka-swf.cabal b/amazonka-swf.cabal
--- a/amazonka-swf.cabal
+++ b/amazonka-swf.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-swf
-version:               0.0.7
+version:               0.0.8
 synopsis:              Amazon Simple Workflow Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -77,5 +77,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.0.7.*
+          amazonka-core == 0.0.8.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/SWF/Types.hs b/gen/Network/AWS/SWF/Types.hs
--- a/gen/Network/AWS/SWF/Types.hs
+++ b/gen/Network/AWS/SWF/Types.hs
@@ -7,6 +7,7 @@
 {-# LANGUAGE OverloadedStrings           #-}
 {-# LANGUAGE RecordWildCards             #-}
 {-# LANGUAGE TypeFamilies                #-}
+{-# LANGUAGE ViewPatterns                #-}
 
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
@@ -778,8 +779,6 @@
     , wecaneaWorkflowType
     ) where
 
-import Data.Char (isUpper)
-import Network.AWS.Error
 import Network.AWS.Prelude
 import Network.AWS.Signing
 import qualified GHC.Exts
@@ -791,15 +790,40 @@
     type Sg SWF = V4
     type Er SWF = JSONError
 
-    service = Service
-        { _svcAbbrev       = "SWF"
-        , _svcPrefix       = "swf"
-        , _svcVersion      = "2012-01-25"
-        , _svcTargetPrefix = Just "SimpleWorkflowService"
-        , _svcJSONVersion  = Just "1.0"
-        }
+    service = service'
+      where
+        service' :: Service SWF
+        service' = Service
+            { _svcAbbrev       = "SWF"
+            , _svcPrefix       = "swf"
+            , _svcVersion      = "2012-01-25"
+            , _svcTargetPrefix = Just "SimpleWorkflowService"
+            , _svcJSONVersion  = Just "1.0"
+            , _svcHandle       = handle
+            , _svcRetry        = retry
+            }
 
-    handle = jsonError statusSuccess
+        handle :: Status
+               -> Maybe (LazyByteString -> ServiceError JSONError)
+        handle = jsonError statusSuccess service'
+
+        retry :: Retry SWF
+        retry = Exponential
+            { _retryBase     = 0.05
+            , _retryGrowth   = 2
+            , _retryAttempts = 5
+            , _retryCheck    = check
+            }
+
+        check :: Status
+              -> JSONError
+              -> Bool
+        check (statusCode -> s) (awsErrorCode -> e)
+            | s == 400 && "Throttling" == e = True -- Throttling
+            | s == 500  = True -- General Server Error
+            | s == 509  = True -- Limit Exceeded
+            | s == 503  = True -- Service Unavailable
+            | otherwise = False
 
 data WorkflowExecutionCancelRequestedEventAttributes = WorkflowExecutionCancelRequestedEventAttributes
     { _wecreaCause                     :: Maybe WorkflowExecutionCancelRequestedCause
