AWS Lambda & Event-driven Architecture Part-1


๐Ÿ“Œ Introduction to AWS Lambda with Events and Best Practices for Event-Driven Architectures

  • This section covers:

    • How AWS Lambda works with events

    • AWS Lambda best practices

    • Event-driven architectures


๐Ÿง  Understanding AWS Lambda and Event-Driven Architecture

  • AWS Lambda is an excellent fit for event-driven architectures due to its event-triggered nature.

  • Events that trigger Lambda can originate from many AWS resources.

  • AWS Lambda is a compute service that runs custom function code and returns a response to the triggering event.

  • Most AWS services generate events for internal communication and serve as event sources for Lambda functions.

  • All Lambda executions are handled internally via the Lambda APIโ€”no direct invocation is allowed from outside.

  • As shown in the image, Lambda interacts with events solely through the Lambda API.


๐ŸŸฉ Lambda Invocation and Duration

  • A Lambda function is triggered by an eventโ€”this is called an invocation.

  • Lambda functions are limited to 15 minutes of execution time.

  • However, most calls across AWS customers take less than a second.

  • Some compute-intensive operations may take several minutes, but this is not the common case.


๐Ÿ”— Examples of Lambda Event Triggers

  • Lambda can be triggered by various events, such as:

    • HTTP requests from Amazon API Gateway

    • Scheduled tasks from Amazon EventBridge Rule

    • Amazon S3 notifications (e.g., when an object is uploaded)

  • Even the simplest Lambda-based applications use at least one event source.

  • Thatโ€™s why Lambda is a natural fit for event-driven architecturesโ€”events are the fuel of Lambda.


๐Ÿ“„ Events as JSON Objects

  • An event is a JSON object containing information about what happened.

  • Events:

    • Represent a change in system state

    • Are immutable

  • An example event JSON is shown in the image.


๐Ÿ” Using the Event Object in Lambda Handler

  • The Lambda handler method always takes the event JSON object as its first parameter.

  • Developers can access event details using this object inside the handler.

  • Example:

      event.source
      event.detail
    
  • In the slide image example, a "New Order" event triggers a Lambda function.

    • You can extract the value using event.detail.

    • You can also access event.source.


๐Ÿ” Types of Events Triggering Lambda

  • Events can be:

    • Custom-generated by other microservices (e.g., โ€œNew Orderโ€ event in an ecommerce app)

    • Generated by AWS services, such as:

      • Amazon SQS: When a new queue message is available, it triggers Lambda by polling the queue.

๐Ÿงฑ Principles of Event-Driven Architecture with Lambda

  • Event-driven architectures rely on:

    • Creating events for all application state changes

    • These events are observable by other services.

  • The event publisher system is unaware of which consumers subscribe to the event.

  • This creates loosely coupled services.

  • Most Lambda-based applications use a combination of AWS services depending on needs for:

    • Storage

    • API management

    • Integration with other systems/services


๐Ÿง  Lambdaโ€™s Role in Microservice-Based Architectures

  • Lambda acts as the connector between services, applying business logic and transforming data between microservices.

  • Serverless applications typically:

    • Use several AWS services

    • Integrate these with custom Lambda function code

    • Communicate via events


๐Ÿ”Œ Common AWS Services Integrated with Lambda

  • As shown in the slide image, the most commonly used AWS services in serverless applications with Lambda include:

    • Compute:

      • AWS Lambda
    • Data Storage:

      • Amazon S3

      • DynamoDB

      • Amazon RDS

    • API Management:

      • Amazon API Gateway
    • Integration:

      • Amazon SNS

      • Amazon SQS

      • Amazon EventBridge

    • Orchestration:

      • AWS Step Functions
0
Subscribe to my newsletter

Read articles from Bosonique ITEdTech directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Bosonique ITEdTech
Bosonique ITEdTech

As a Full-Stack Developer with a passion for staying on the cutting edge of technology, I bring a unique blend of creativity and technical expertise to every project. With extensive experience in web development, I have built an impressive portfolio of successful projects that range from intuitive user interfaces to complex backend systems. As a AWS DevOps engineer, I am dedicated to optimizing development workflows and reducing costs through automation, cloud computing, and infrastructure management. My ability to work collaboratively and think outside the box make me an asset to any team.