Lambda is a service that allows once again to reduce the amount of backend work for website, mobile apps or other businesses .
In the most cases, if you run a mobile app or an online web app, there are always some tasks to execute in backend.
For example if you ask the photo of your users, you want to be able to resize it before display it in order to reduce loading of the app or avoid image distortion problems if it is resized by the html / css . To do this you have two options either resize when saving or do it later with a job that runs every x time. The problem when you choose the first solution is that resize an image at the time of the request break the user experience (slow) and increases the load on the server which often leads resize errors on large images and then you need to create a backend task to check and resize once again if the resized image was not created. So most startups run tasks in backend after doing the first solution error.
Then the question that comes is where execute the tasks ? At the begining most startups create a small script on the same machine as the server but as the load increases it is then necessary to think to build an architecture (processing machine, scaling capacity, reduce cost ...) in addition to the first architecture.
This is here that AWS Lambda is the solution. Lambda allows to perform backend tasks triggered by events happening on different machines and services all with a better cost. All with that Lamda has good performance since the jobs (functions) are executed on nodejs (speed and Non-Blocking IO). All with that you don't have to manage scaling.
Here I took the image resizing example but there are really a lot of different cases
Analysing a stream of data to recognize patterns. Crawling and indexing I think Regular calculation on the database Others scheduled tasks you can imagine ...