AWS Event-Driven

Event-Driven Architecture

Škálovatelné event-driven systémy na AWS pro moderní aplikace

Amazon EventBridge

Centrální event bus pro serverless event-driven architektury

SNS/SQS Messaging

Pub/Sub a queue systémy pro spolehlivé doručování zpráv

Lambda Functions

Serverless event processing bez správy infrastruktury

Event Sourcing

Event store s DynamoDB Streams a Kinesis

CQRS Pattern

Oddělení read a write modelů pro škálování

Step Functions

Orchestrace komplexních event-driven workflows

Event-Driven Architecture

Proč Event-Driven architektura?

Event-driven architektura (EDA) je návrhový vzor, kde komponenty komunikují prostřednictvím asynchronních událostí místo synchronních volání. Tento přístup přináší zásadní výhody pro moderní distribuované systémy.

Škálovatelnost

Každá komponenta škáluje nezávisle podle zátěže

Auto-scaling

Loose Coupling

Služby jsou nezávislé a snadno nahraditelné

Microservices ready

Resilience

Selhání jedné části neovlivní zbytek systému

Fault tolerance

Real-time

Okamžitá reakce na byznys události

< 100ms latency

Základní Event Patterns

Event Notification

Jednoduchá notifikace o změně stavu

Use case: Order created, User registered

Event-Carried State Transfer

Event obsahuje všechna potřebná data

Use case: Synchronizace mezi službami

Event Sourcing

Všechny změny jako sekvence events

Use case: Audit trail, temporal queries

CQRS

Oddělené read a write modely

Use case: High-read systémy, reporting

✓ Kdy použít EDA

  • • Microservices architektury s mnoha službami
  • • Systémy s proměnlivou zátěží (scale-to-zero)
  • • Real-time notifikace a reakce
  • • IoT a streaming data processing
  • • Audit trail a compliance požadavky
  • • Integrace s třetími stranami (webhooks)

✗ Kdy zvážit alternativy

  • • Jednoduché CRUD aplikace
  • • Striktní ACID transakce bez eventual consistency
  • • Malé týmy bez zkušeností s distributed systems
  • • Legacy integrace vyžadující synchronní odpovědi
  • • Nízká komplexita bez potřeby škálování

AWS Messaging Services Comparison

Vyberte správnou službu pro váš use case. Každá služba má specifické výhody a často se kombinují pro komplexní architektury.

Amazon EventBridge

Serverless Event Bus

Pricing
$1.00 / milion events

Centrální event bus pro routing událostí mezi AWS službami, SaaS aplikacemi a vlastním kódem.

Latency
< 500ms
Throughput
10,000+ events/sec

Features

Content-based routing
Schema Registry
Archive & Replay
SaaS integrace
Dead-letter Queue
FIFO ordering
Exactly-once delivery
Batch processing
Enterprise integrace a komplexní event routing

Typické use cases

  • Orchestrace microservices
  • SaaS integrace (Salesforce, Zendesk)
  • AWS service events (S3, EC2)
  • Scheduler (cron jobs)
  • Cross-account event routing

Běžné kombinace služeb

EventBridge + SQS

EventBridge pro routing a filtering, SQS pro buffering a rate limiting před Lambda.

EventEBSQSLambda

SNS + SQS Fan-out

SNS pro broadcasting, každý subscriber má vlastní SQS queue pro nezávislé processing.

EventSNS3x SQS

Kinesis + Lambda

Kinesis pro high-volume ingestion, Lambda pro real-time transformace a enrichment.

IoTKinesisLambdaS3

Event-Driven Architecture na AWS

Interaktivní diagram ukazující tok událostí od zdrojů přes messaging layer až po consumer services. Klikněte na uzel pro zobrazení detailů.

Event Sources
EventBridge
Messaging
Compute
Storage
Consumers

Saga Pattern pro distribuované transakce

Saga pattern řeší problém distribuovaných transakcí v microservices architektuře. Místo jedné ACID transakce používá sekvenci lokálních transakcí s kompenzačními akcemi.

Orchestration Saga

Centrální orchestrátor (Step Functions) řídí celý workflow a volá jednotlivé služby. Při selhání spouští kompenzační akce v opačném pořadí.

✓ Výhody

  • • Jednoduchá implementace a debugging
  • • Vizuální workflow ve Step Functions
  • • Centralizovaná error handling logika
  • • Jasná sekvence kroků

✗ Nevýhody

  • • Single point of failure (orchestrátor)
  • • Coupling služeb na orchestrátor
  • • Vyšší latence (sekvenční volání)

AWS implementace

Step FunctionsLambdaDynamoDBSQS DLQ

Step Functions Workflow

1
Order Service
Create Order
Kompenzace: Cancel Order
2
Payment Service
Process Payment
Kompenzace: Refund Payment
3
Inventory Service
Reserve Stock
Kompenzace: Release Stock
4
Shipping Service
Create Shipment
Kompenzace: Cancel Shipment

Při selhání kroku 4 se spustí kompenzace: Release Stock → Refund → Cancel Order

Idempotence

Každá akce musí být idempotentní. Použijte unikátní transaction ID a conditional writes v DynamoDB.

Timeouts

Nastavte timeout pro každý krok. Step Functions podporuje heartbeat pro long-running tasks.

Observability

X-Ray pro distributed tracing, CloudWatch pro metriky, correlation ID pro end-to-end tracking.

Event-Driven v praxi

Reálné implementace event-driven architektury napříč různými odvětvími.

E-commerce

Order Processing Pipeline

Výzva

Monolitická aplikace nezvládala Black Friday peak s 10x nárustem objednávek. Synchronní processing způsoboval timeouty a ztracené objednávky.

Řešení

  • EventBridge jako centrální event bus pro order events
  • SQS pro buffering před každým procesním krokem
  • Step Functions pro orchestraci order workflow
  • Lambda pro inventory, payment, shipping services
  • DynamoDB Streams pro real-time inventory sync

Event Flow

Order Created → EventBridge → SQS → Lambda (Validate) → Step Functions (Payment, Inventory, Shipping) → SNS (Notifications)

Výsledky

99.9%
Dostupnost během peak
< 100ms
Latence zpracování
50x
Škálování na peak
-60%
Infrastrukturní náklady
Klíčové služby
EventBridgeLambdaSQSKinesisStep FunctionsDynamoDB

Škálovatelnost

Event-driven systémy zvládají 10-100x nárůst zátěže bez změny architektury.

Rychlost

Asynchronní processing snižuje latenci z sekund na milisekundy.

Náklady

Pay-per-use model a scale-to-zero snižují náklady o 40-70%.

Best Practices pro Event-Driven systémy

Osvědčené postupy pro design, reliability, observability a security event-driven architektur na AWS.

Event Design

Event Schema Best Practices

Použijte Schema Registry

EventBridge Schema Registry pro verzování a discovery. Generujte code bindings pro TypeScript/Python.

{ "version": "1.0", "eventType": "order.created", "timestamp": "ISO8601", "correlationId": "uuid" }

Event Envelope Pattern

Standardní obálka s metadata (correlation ID, timestamp, source) a payload.

{ "metadata": {...}, "data": { "orderId": "123", "items": [...] } }

Immutable Events

Events jsou immutable – nikdy neměňte historické eventy, vytvořte nový event s korekcí.

Reliability

Reliability Patterns

Idempotent Consumers

Každý consumer musí být idempotentní. Použijte DynamoDB conditional writes s eventId.

PutItem with ConditionExpression: "attribute_not_exists(eventId)"

Dead-Letter Queues

Každá SQS queue musí mít DLQ. Monitorujte DLQ depth a nastavte alarmy.

RedrivePolicy: { maxReceiveCount: 3, deadLetterTargetArn: "arn:aws:sqs:..." }

Retry with Backoff

Exponential backoff pro retry. Lambda: reserved concurrency + SQS visibility timeout.

Observability

Monitoring & Tracing

Distributed Tracing

AWS X-Ray pro end-to-end tracing. Propagujte trace ID přes všechny služby.

X-Amzn-Trace-Id: Root=1-xxx;Parent=xxx;Sampled=1

Structured Logging

JSON logging s correlation ID, event type, service name. CloudWatch Logs Insights pro queries.

Key Metrics

Queue depth, processing latency, error rate, DLQ messages. CloudWatch dashboards pro real-time view.

Security

Security Best Practices

Least Privilege IAM

Každá Lambda má vlastní role s minimálními permissions. Resource-based policies pro EventBridge.

events:PutEvents on specific event bus ARN only

Encryption

SQS: SSE-SQS nebo SSE-KMS. Kinesis: server-side encryption. EventBridge: at-rest encryption.

VPC Endpoints

Pro citlivé workloady: VPC endpoints pro SQS, SNS, EventBridge. No internet exposure.

Error Handling

Error Handling Strategies

Poison Message Handling

Po N failed attempts → DLQ. Alert on DLQ. Manual review a replay.

SQS maxReceiveCount: 3 → DLQ → Lambda (alert) → SNS (PagerDuty)

Circuit Breaker

Pro external dependencies. Implementace v Lambda pomocí DynamoDB pro state.

Graceful Degradation

Fallback behavior při partial failures. Cache pro read operations.

Testing

Testing Strategies

Contract Testing

Pact nebo AWS EventBridge Schema Registry pro producer-consumer contracts.

LocalStack

Lokální AWS pro integration testy. Docker Compose s SQS, SNS, Lambda.

Chaos Engineering

AWS Fault Injection Simulator. Testujte failure scenarios: Lambda throttling, SQS delays.

Quick Reference: Event-Driven Checklist

Event Design

  • ☐ Schema registered
  • ☐ Correlation ID
  • ☐ Timestamp (ISO8601)
  • ☐ Version field

Reliability

  • ☐ DLQ configured
  • ☐ Idempotent consumer
  • ☐ Retry policy
  • ☐ Circuit breaker

Observability

  • ☐ X-Ray enabled
  • ☐ Structured logs
  • ☐ Dashboards
  • ☐ Alerts

Security

  • ☐ Least privilege IAM
  • ☐ Encryption enabled
  • ☐ VPC endpoints
  • ☐ Audit logging

Implementační proces

Od návrhu po produkční event-driven systém

1

Fáze 1: Discovery & Design

2-3 týdny
  • Identifikace event flows
  • Domain-driven design
  • Event storming workshopy
  • Výběr messaging patterns
  • Architektonický design
  • Security requirements
2

Fáze 2: Foundation

2-4 týdny
  • EventBridge setup
  • Schema registry
  • SNS/SQS topics a queues
  • Lambda functions scaffold
  • DLQ a error handling
  • Monitoring baseline
3

Fáze 3: Implementation

4-8 týdnů
  • Event producers development
  • Event consumers development
  • Event transformation
  • Saga patterns implementace
  • Testing framework
  • Integration testing
4

Fáze 4: Observability & ops

Průběžně
  • Distributed tracing (X-Ray)
  • Event flow monitoring
  • Alerting a dashboards
  • Capacity planning
  • Incident response
  • Kontinuální optimalizace

Technology Stack

AWS služby pro event-driven architektury

Event Bus

Amazon EventBridgeEventBridge PipesSchema RegistryEvent Archive

Messaging

Amazon SQSAmazon SNSAmazon MQSQS FIFO

Streaming

Kinesis Data StreamsKinesis FirehoseKinesis AnalyticsAmazon MSK

Compute

AWS LambdaStep FunctionsECS FargateEKS

Často kladené otázky o Event-Driven architektuře

Odpovědi na nejčastější dotazy o event-driven architektuře na AWS

Kontaktujte nás

Připraveni transformovat vaši datovou strategii?

Kontaktujte nás ještě dnes a projednejme, jak vám naše odborné znalosti v oblasti datového inženýrství a vývoje aplikací mohou pomoci.

Personalizované konzultace

Analyzujeme vaše specifické potřeby a výzvy.

Řešení na míru

Vlastní strategie vytvořené pro vaše specifické obchodní požadavky.

Průběžná podpora

Jsme s vámi na každém kroku, od plánování až po implementaci.

Respektujeme vaše soukromí. Váš e-mail bude použit pouze k zaslání e-knihy a relevantních aktualizací.