Building Serverlesspresso Creating Event Driven Architectures Svs312

Title

AWS re:Invent 2022 - Building Serverlesspresso: Creating event-driven architectures (SVS312)

Summary

  • Presenter: James Bezic, Developer Advocate for AWS Serverless.
  • Project: Serverlesspresso, an event-driven coffee ordering app using serverless architecture.
  • Architecture: Utilizes AWS services like Amplify Console, API Gateway, Cognito, DynamoDB, EventBridge, Step Functions, IoT Core, and Lambda.
  • Design Principles: Minimal code, extensibility, scalability, and cost efficiency.
  • Development Process: Started with a workflow, added microservices, and then frontends.
  • Communication: Microservices communicate via events, with APIs used only for outward-facing interactions.
  • Real-time Frontends: IoT Core is used for real-time updates to frontends.
  • Orchestration and Choreography: Step Functions orchestrate within service boundaries, while EventBridge choreographs across boundaries.
  • Cost: The system is highly cost-effective, with the majority of the cost coming from SMS messaging.
  • Resources: Presentation deck, code, and additional serverless resources provided.

Insights

  • Event-Driven Architecture (EDA): EDA allows for highly decoupled microservices, which can lead to simpler codebases and easier feature additions.
  • Step Functions Workflow Studio: A tool that simplifies the creation of workflows, replacing complex pseudo code with a visual drag-and-snap interface.
  • CRUD Microservices with Step Functions: A pattern that reduces complexity by using Step Functions to handle create, read, update, and delete operations directly.
  • IoT Core for Real-Time Communication: Demonstrates the power of using IoT Core as a serverless WebSocket service for real-time communication with frontends.
  • EventBridge Schema Registry: Helps track and version events, aiding in the development and testing phases.
  • Cost-Effectiveness: The serverless architecture not only provides scalability and extensibility but also proves to be cost-efficient, with the entire service costing under $1 a day, excluding SMS costs.
  • Serverless Land: A resource for serverless application developers, offering patterns, workflows, and code snippets.
  • Learning Paths: AWS provides learning paths, ramp-up guides, and digital badges for serverless development education.

The insights from the transcript suggest that event-driven serverless architectures can provide significant benefits in terms of scalability, maintainability, and cost. The Serverlesspresso project serves as a practical example of how these architectures can be implemented using AWS services. The talk also highlights the importance of considering event design, versioning, and the combination of orchestration and choreography in building such systems.