Why is there SQS in front of Lambda in this architecture diagram?

I am trying to learn how to build scalable serverless applications. I was following [this blog post]( Building a location-based, scalable, serverless web app – part 2 | AWS Compute Blog (amazon.com)) by AWS. I am at a loss to understand the utility of SQS in front of lambda. I also don’t know why we don’t have lambda directly store in DynamoDB. Can someone please help me understand?

Putting a message in one queue doing some work and passing it to another queue is perfectly normal way to program, Of course any optimization is scenario specific. As for as displaying status I wouldn’t do that with another message queue. You need a place to store metadata about the file and the state of the work. You could make it a second file in S3 but I’d probably do it in a DB, maybe a non-sql with a key value pair where the filename is the key and the value is a json with all the meta data. Then when the frontend wants the status they jsut read it from the DB.
9Apps Showbox Tutuapp