Microservices Kommunikation
Synchrone Kommunikation
REST APIs
- HTTP/HTTPS basiert
- JSON/XML Payload
- Stateless Design
- OpenAPI/Swagger Dokumentation
- Weit verbreitet, einfach
gRPC
- Protocol Buffers (Protobuf)
- HTTP/2 Transport
- Bidirektionales Streaming
- Code-Generierung
- Hohe Performance
GraphQL
- Query Language für APIs
- Client bestimmt Datenform
- Single Endpoint
- Typisiertes Schema
Asynchrone Kommunikation
Message Queues
RabbitMQ
- AMQP Protokoll
- Flexible Routing
- Queues und Exchanges
- Acknowledgements
Amazon SQS
- Managed Queue Service
- FIFO Queues
- Dead Letter Queues
- Serverless Integration
Event Streaming
Apache Kafka
- Distributed Event Store
- Partitioned Topics
- Consumer Groups
- Log Compaction
- Hoher Durchsatz
Amazon Kinesis
- Managed Streaming
- Real-time Processing
- Sharding
Kommunikationsmuster
Request-Response
- Synchroner Aufruf
- Timeout-Handling
- Circuit Breaker
Publish-Subscribe
- Event Publishing
- Multiple Consumer
- Lose Kopplung
Event Sourcing
- Events als Wahrheit
- Event Store
- Replay möglich
CQRS
- Command Query Separation
- Separate Read/Write Models
Service Discovery
- DNS-based (CoreDNS)
- Consul
- Eureka
- Kubernetes Services
API Gateway
- Request Routing
- Authentication
- Rate Limiting
- Load Balancing
- Kong, Ambassador, Traefik
Resilienz-Patterns
- Circuit Breaker (Hystrix, Resilience4j)
- Retry mit Backoff
- Timeout Policies
- Bulkhead Isolation
Best Practices
- Idempotente Operationen
- Correlation IDs
- Versioning (v1, v2)
- Contract Testing
- Dead Letter Handling
CFTools Software implementiert robuste Microservices-Kommunikation.