anchor.diff:  
       URL = <<"http://dynamodb.", (endpoint())/binary, ".amazonaws.com/">>,
       Headers = [
  -               {<<"Host">>, <<"dynamodb.", (endpoint())/binary, ".amazonaws.com">>},
  +               {<<"Host">>, <<"dynamodb.", (endpoint())/binary,
  +                              ".amazonaws.com">>},
                  {<<"Content-Type">>, <<"application/x-amz-json-1.0">>},
                  {<<"x-amz-date">>, edatetime:iso8601(Now)},
                  {<<"x-amz-target">>, target(Operation)}
                 ],
  -    Signed = [{<<"Authorization">>, authorization(Headers, Body, Now)} | Headers],
  -
  -
  -    case party:post(URL, Signed, Body, [{server_timeout, Timeout},
  -                                        {call_timeout, Timeout*2}]) of
  +    Signed = [{<<"Authorization">>, authorization(Headers, Body, Now)}
  +              | Headers],
  +
  +    ServerTimeout = proplists:get_value(server_timeout, Opts, 5000),
  +    CallTimeout = proplists:get_value(server_timeout, Opts, 10000),
  +    ClaimTimeout = proplists:get_value(claim_timeout, Opts, 1000), %% us
  +
  +    case party:post(URL, Signed, Body, [{server_timeout, ServerTimeout},
  +                                        {call_timeout, CallTimeout},
  +                                        {claim_timeout, ClaimTimeout}]) of
           {ok, {{200, <<"OK">>}, _, ResponseBody}} ->
               {ok, jiffy:decode(ResponseBody)};
   
  
positive.code: 
  retry(Op, Request, Retries, Start, Opts) ->
      RequestStart = os:timestamp(),
      case do(Op, Request, timeout(Opts)) of
          {ok, Response} ->
  
              case proplists:get_value(<<"ConsumedCapacity">>,
  
negative.code: 
  
  
  do(Operation, {UserRequest}, Opts) ->
      Now = edatetime:now2ts(),
  
      Request = {lists:keystore(<<"ReturnConsumedCapacity">>, 1, UserRequest,
  