My retry scheme works well. As long as I POST a “keep-alive” every minute, I will always get 200 from a DynamoDB PutItem. I just resend the previous PutItem request as the keep-alive. If the connection goes “stale”, I retry on a 1 second interval, which is successful in approx. 1-10 attempts.
The retries and keep-alive’s are not too wasteful.