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
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-scalingLoose Coupling
Služby jsou nezávislé a snadno nahraditelné
Microservices readyResilience
Selhání jedné části neovlivní zbytek systému
Fault toleranceReal-time
Okamžitá reakce na byznys události
< 100ms latencyZá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
Centrální event bus pro routing událostí mezi AWS službami, SaaS aplikacemi a vlastním kódem.
Features
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.
SNS + SQS Fan-out
SNS pro broadcasting, každý subscriber má vlastní SQS queue pro nezávislé processing.
Kinesis + Lambda
Kinesis pro high-volume ingestion, Lambda pro real-time transformace a enrichment.
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ů.
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 Functions Workflow
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.
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
Klíčové služby
Š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 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 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.
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=1Structured 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 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 onlyEncryption
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 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 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
Fáze 1: Discovery & Design
- Identifikace event flows
- Domain-driven design
- Event storming workshopy
- Výběr messaging patterns
- Architektonický design
- Security requirements
Fáze 2: Foundation
- EventBridge setup
- Schema registry
- SNS/SQS topics a queues
- Lambda functions scaffold
- DLQ a error handling
- Monitoring baseline
Fáze 3: Implementation
- Event producers development
- Event consumers development
- Event transformation
- Saga patterns implementace
- Testing framework
- Integration testing
Fáze 4: Observability & ops
- 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
Messaging
Streaming
Compute
Často kladené otázky o Event-Driven architektuře
Odpovědi na nejčastější dotazy o event-driven architektuře na AWS
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.