Building Next Gen Applications with Event Driven Architectures Api311 R

Title

AWS re:Invent 2022 - Building next-gen applications with event-driven architectures (API311-R)

Summary

  • Eric Johnson, a principal developer advocate for AWS, discusses building next-gen applications with event-driven architectures (EDA).
  • He emphasizes the importance of enterprise integration patterns, decoupling, and handling event duplication using idempotency.
  • Synchronous vs. asynchronous communication is explored, with a preference for asynchronous where possible.
  • Queues and event buses are recommended for decoupling, with services like Amazon SQS and Amazon EventBridge highlighted.
  • Choreography and orchestration within event-driven architectures are explained, with AWS Step Functions as a key service for orchestration.
  • Idempotency is crucial for handling event duplication, and strategies for implementing idempotent systems are discussed, including the use of idempotent tokens and DynamoDB.
  • Eric provides examples of idempotency with SQS, Step Functions, and EventBridge, and offers resources for further learning.

Insights

  • Event-driven architectures (EDA) are not new, but AWS is doubling down on them as a preferred method for building applications.
  • Decoupling applications can have costs, but understanding and managing coupling is crucial for building resilient systems.
  • Asynchronous communication is generally preferred to avoid single points of failure and to allow systems to control their consumption rate.
  • EventBridge and SQS are powerful AWS services that facilitate event-driven architectures by managing events and queues, respectively.
  • Step Functions is a valuable tool for orchestrating complex workflows within a domain, allowing for direct service integrations and reducing the need for intermediary code.
  • Idempotency is a critical concept in distributed systems to ensure that operations can be performed multiple times without changing the result, thus handling potential event duplications gracefully.
  • AWS Power Tools can be used to simplify the implementation of idempotent systems, and it's important for clients to generate and manage idempotent tokens.
  • The session underscores the importance of designing systems that are resilient to failures and capable of handling duplicate events without adverse effects.