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.

Řešení

EventBridge jako centrální event bus • SQS pro buffering • Step Functions pro orchestraci • Lambda pro inventory/payment/shipping • DynamoDB Streams

EventBridgeSQSLambdaStep Functions

99.9%

dostupnost

<100ms

latence

50x

škálování

-60%

náklady

Manufacturing / IoT

Prediktivní údržba strojů

Výzva

Tisíce IoT senzorů generují 100K+ zpráv/sec. Potřeba real-time detekce anomálií a predikce poruch.

Řešení

IoT Core pro MQTT z 5000+ senzorů • Kinesis Data Streams • Kinesis Data Analytics pro anomaly detection • Lambda pro alerting • S3 + Athena

IoT CoreKinesisLambdaAthena

100K+

events/sec

-40%

odstávky

<5s

time-to-alert

2TB

data/den

FinTech

Real-time fraud detection

Výzva

Legacy batch processing detekoval podvody až po 24 hodinách. Potřeba real-time analýzy transakcí.

Řešení

API Gateway pro ingestion • Kinesis pro streaming • Lambda + SageMaker pro ML scoring • EventBridge pro routing • Step Functions pro investigation

API GatewayKinesisSageMakerEventBridge

<200ms

detection latency

-80%

fraud losses

99.99%

true positive

1M+

txn/hour

Logistics

Fleet tracking & dispatch

Výzva

Manuální dispatch a nedostatek real-time visibility nad flotilou 500+ vozidel.

Řešení

IoT Core pro GPS tracking každých 30s • EventBridge pro geofencing • DynamoDB pro state management • Step Functions pro dispatch • AppSync

IoT CoreEventBridgeDynamoDBAppSync

30s

update interval

-25%

fuel costs

+15%

efficiency

Real-time

tracking

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
Event-Driven Architecture — pojmy

Event-Driven Architecture: pojmy, vzory a AWS služby

Často hledané pojmy okolo event-driven architektury — od event sourcingu přes CQRS po saga pattern a srovnání AWS messaging služeb.

Co je event-driven architecture (EDA)

Event-driven architecture je architektonický styl, kde komponenty komunikují prostřednictvím asynchronních událostí místo přímých synchronních volání. Producent publikuje event („objednávka vytvořena"), konzumenti reagují nezávisle. Výsledek: loose coupling, lepší škálovatelnost a přirozený audit log.

Event vs message vs command

Event je fakt o tom, co se stalo („OrderPlaced") — bez očekávání odpovědi. Command je požadavek na akci („PlaceOrder") s konkrétním cílem. Message je obecný transportní pojem zahrnující oba. EDA staví primárně na events.

Pub/Sub vs message queue

Pub/Sub (publish-subscribe) broadcastuje událost všem zájemcům (1:N) — typicky SNS, EventBridge, Kafka topics. Message queue (1:1) doručí zprávu jednomu konzumentovi a podporuje retry a dead-letter — typicky SQS, Amazon MQ, RabbitMQ.

Event sourcing

Event sourcing ukládá stav aplikace jako sekvenci eventů, ne jako aktuální snapshot. Stav rekonstruuješ přehráním eventů (replay). Výhoda: kompletní historie, time-travel debug, snadný audit. Nevýhoda: složitější dotazy a schema evolution.

CQRS (Command Query Responsibility Segregation)

CQRS odděluje write model (commands → eventy) a read model (optimalizované projekce pro dotazy). Často se kombinuje s event sourcingem. Vhodné tam, kde mají reads a writes velmi odlišné nároky na výkon nebo strukturu.

Saga pattern

Saga pattern řeší distribuované transakce napříč mikroslužbami sekvencí lokálních transakcí s kompenzačními akcemi. Když některý krok selže, předchozí kroky se rollbackují přes compensating events. Dvě varianty: choreography (peer-to-peer) a orchestration (centrální koordinátor, typicky AWS Step Functions).

Choreography vs orchestration

Choreography: služby si vyměňují eventy přes broker bez centrálního dirigenta — flexibilní, ale obtížně monitorovatelné. Orchestration: centrální workflow engine (Step Functions, Temporal, Camunda) řídí pořadí kroků — lepší přehled a error handling, ale jediný bod selhání.

Amazon EventBridge

EventBridge je serverless event bus pro AWS i SaaS aplikace. Podporuje content-based filtering, schema registry, EventBridge Pipes (zdrojový stream → filter → transformace → target) a archive/replay. Ideální pro cross-service eventy a SaaS integrace (Stripe, Salesforce, Datadog).

Kinesis vs MSK (Kafka)

Kinesis Data Streams je AWS managed streaming (shardy, 24h–365 dní retence, jednoduchý billing). Amazon MSK je managed Apache Kafka (topics, partitions, ekosystém Kafka Connect/Streams). Kinesis je rychlejší start, MSK je výhodnější pro existující Kafka stack a vyšší throughput.

SQS vs SNS vs EventBridge

SQS = queue (1:1, retry, DLQ). SNS = pub/sub (1:N, fan-out, A2A i A2P). EventBridge = pub/sub s pravidly, filtrováním a SaaS integracemi. Typický pattern: SNS → SQS fan-out, EventBridge pro complex routing s filtry.

Eventual consistency a idempotence

EDA je inherentně eventually consistent — různí konzumenti vidí stav s mírným zpožděním. Handlery musí být idempotentní (zpracování stejného eventu vícekrát nesmí způsobit duplicitní efekt), typicky přes deduplication ID nebo upsert operace.

Kdy nezavádět event-driven architekturu

EDA přidává komplexitu — broker, monitoring, schema evolution, debugging asynchronních flows. Nezavádějte ji pro malé monolity, jednoduché CRUD aplikace nebo když tým nemá zkušenost s distributed systems. Začněte hybridem: kritické flows event-driven, zbytek synchronně.

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í.