NEW
Decentralized coordination where services react to events and peer interactions without a central controller.
DESCRIPTION
Choreography describes distributed service interactions coordinated through events and contracts rather than a central orchestrator. It promotes loose coupling, autonomy, and scalability in microservices. Patterns like sagas manage multi-step transactions via event exchanges. BPMN includes choreography diagrams to model participant interactions. Choreography suits high-scale, event-driven systems but demands robust observability and governance.
ALTERNATIVE DEFINITIONS
Wikipedia
Service choreography is the coordination of interactions (messages) between multiple services in a decentralized manner.
Highlights decentralized coordination across services via message interactions.
Camunda
Choreography models the interactions between participants without showing the internal behavior of any one participant and without a centralized controller.
Emphasizes participant interaction modeling and absence of centralized control.
RELATED TERMS
Event-Driven Architecture Microservices Saga Pattern Message Broker Google Cloud Pub-Sub BPMN Domain-Driven Design Asynchronous Communication Service Mesh
COMPETING TERMS
RELATIONS
- Broader: Event-Driven Architecture
KNOWLEDGE AREAS
Software Engineering Data Integration & Interoperability Real-time & Streaming Data Data Architecture Collaboration
TARGET AUDIENCE
Software Architect Solution Architect Software Developer Data Engineer DevOps Engineer
EXTERNAL SOURCES
- Wikipedia - Service choreography
- Microservices.io (Chris Richardson) - Saga pattern via events
- Red Hat - Comparison of styles
TOP QUESTIONS
How does Choreography differ from Orchestration?
Choreography is decentralized event-driven coordination, while orchestration is a centralized workflow controlling calls. Choreography favors autonomy; orchestration favors explicit control.
Category: Misunderstanding
When should I use Choreography in microservices?
Use it for high-scale, loosely coupled, event-driven domains where services can react independently. It’s ideal for eventual consistency and domain autonomy.
Category: HowTo
What are common pitfalls of Choreography?
Hidden dependencies, tangled event flows, and difficult troubleshooting can emerge. Good event schema design and observability mitigate these issues.
Category: Mistakes
How is transactional consistency handled in Choreography?
Sagas coordinate distributed transactions via events, compensating failed steps instead of using global locks.
Category: Requirements
What tooling supports Choreography?
Message brokers (Kafka), pub/sub systems, event schemas, and tracing tools (OpenTelemetry) support robust choreography.
Category: Platform
How do I monitor a choreographed system?
Use correlation IDs, distributed tracing, centralized logging, and event lineage to reconstruct flows.
Category: Observability
What governance patterns help with Choreography?
Define event contracts, versioning policies, and data ownership to avoid breaking changes and coupling.
Category: Governance
Is Choreography suitable for regulated environments?
Yes, with strong auditing, immutable logs, and clear ownership. Event history supports traceability.
Category: Compliance
What is a simple analogy for Choreography?
Think of a dance where partners follow shared steps without a conductor, reacting to cues from each other.
Category: Example