Hello Joe!
In my case, it was a way to persist the data temporarily when the lambda threw an error. Since I had a Dead Letter Queue, I could reprocess the data without forcing the Client to re-call the API.
On top of that, I added the SQS because it was a way to handle multiple calls of Lambda. Even though Lambda is auto-scalable, it has a concurrency limit (https://lumigo.io/aws-lambda-performance-optimization/aws-lambda-concurrency/). So using the SQS allowed me to control the currency limit that I had set (I set it to 30).For example, if the API was executed while the Lambda function was at maximum concurrency, additional requests failed with a throttling error (429 status code). Using the SQS, I was able to control this scenario because I could set a retry policy on SQS.