Serverless data lake architecture AWS CloudFormation Macros Serverless lessons learned #8 backoff Serverless lessons learned #7 rate limiting Serverless lessons learned #6 delivery strategies Serverless lessons learned #5 retries Serverless lessons learned #4 circuit breaker Serverless lessons learned #3 reserved concurrency Serverless lessons learned #2 dead letter queues Serverless lessons learned #1 custom sdk timeouts