Serverless Developer Guide
user's proﬁle page. In this scenario, you may choose to create a Lambda function that creates a 
thumbnail automatically. Amazon S3 is one of the supported AWS event sources that can publish
object-created events and invoke your Lambda function. Your Lambda function code can read the 
photo object from the Amazon S3 bucket, create a thumbnail version, and then save it in another 
Amazon S3 bucket.
• Image identiﬁcation – Given the same photo sharing application, suppose now that you want to 
provide automatic categorization of images for your users. In this scenario, Amazon Rekognition 
will queue each images for processing. After analysis, faces are detected and your application 
can implement similarity scores to group photos by family members, for example. Objects, 
scenes, activities, landmarks, and dominant colors are detected and labels are applied to improve 
categorization and search.
To implement asynchronous processing in similar scenarios, you can use the following AWS services 
together.
• AWS Lambda — For compute processing tasks.
• AWS Step Functions — For managing and orchestrating microservice workﬂows.
• Amazon Simple Notiﬁcation Service — For message delivery from publishers to subscribers, 
plus fan out which is when a message published to a topic is replicated and pushed to multiple 
endpoints for parallel asynchronous processing.
• Amazon Simple Queue Service — For creating secure, durable, and scalable queues for 
asynchronous processing.
• Amazon DynamoDB and Amazon S3 — For storing and retrieving data and ﬁles
Synchronous processing
Microservice architecture breaks applications into loosely coupled services. Each microservice is 
independent, making it easy to scale up a single service or function without needing to scale the 
entire application. Individual services are loosely coupled, letting independent teams focus on a 
single business process, without the need for them to understand the entire application.
Microservices also let you choose which individual components suit your business needs, giving you 
the ﬂexibility to change your selection without rewriting your entire workﬂow. Diﬀerent teams can 
use the programming languages and frameworks of their choice to work with their microservice, 
and this microservice can still communicate with any other in the application through application 
programming interfaces (APIs).
Synchronous processing 5