Choreografie versus orkestratiepatronen
Vergelijk eventchoreografie (elke service reageert onafhankelijk) met orkestratie (een centrale coördinator stuurt services aan) en kies het juiste patroon voor uw architectuur.
Choreografie versus orkestratiepatronen is een gratis Cloud & IT Cert Prep-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cloud & IT Cert Prep. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.
Twee benaderingen voor coördinatie van microservices
Wanneer microservices moeten samenwerken om een bedrijfsproces te voltooien, zijn er twee fundamentele coördinatiepatronen. Bij orkestratie gebruikt een centrale coördinator (zoals Step Functions) expliciete opdrachten aan elke service. Bij choreografie is er geen centrale coördinator: services luisteren naar gebeurtenissen en reageren onafhankelijk. Begrijpen welke aanpak je wanneer gebruikt en wanneer je ze combineert, is een belangrijke architectuurvaardigheid die op het SAA-C03-examen wordt getoetst.
Het orkestratiepatroon uitgelegd
Bij orkestratie bestuurt een centrale service (de orchestrator) de volgorde van bewerkingen. Deze roept Service A aan, wacht op het antwoord en roept vervolgens Service B aan, enzovoort. De orchestrator heeft volledig inzicht in de processtatus, verwerkt fouten en nieuwe pogingen en kan beslissingen nemen op basis van tussentijdse resultaten. Op AWS is Step Functions de standaardorchestrator: deze definieert de volledige werkstroom als toestandsmachine en stuurt elke stap aan.
# Orchestration: Step Functions state machine drives order processing
# StepFunctions -> ValidateOrder Lambda -> ChargePayment Lambda -> NotifyShipping Lambda
# Each arrow is an explicit command from the orchestrator
# If ChargePayment fails, Step Functions catches the error and routes to NotifyFailure
# The orchestrator (Step Functions) knows the full state of the order at every momentHet choreografiepatroon uitgelegd
Bij choreografie communiceren services via gebeurtenissen zonder centrale coördinator. Service A voltooit zijn taak en publiceert een gebeurtenis (bijvoorbeeld OrderValidated) naar een gebeurtenissenbus of topic. Service B luistert naar gebeurtenissen van het type OrderValidated en verwerkt vervolgens de betaling, waarna het PaymentCharged publiceert. Service C luistert naar PaymentCharged en verzendt de bestelling. Elke service is autonoom en losjes gekoppeld: de service kent alleen de gebeurtenissen die hij verwerkt en produceert, niet de andere services.
# Choreography: EventBridge bus connects services without central coordinator
# OrderService -> publishes 'OrderPlaced' to EventBridge
# PaymentService -> listens for 'OrderPlaced', charges card, publishes 'PaymentCharged'
# ShippingService -> listens for 'PaymentCharged', creates shipment, publishes 'OrderShipped'
# NotificationService -> listens for 'OrderShipped', sends email
# No service calls another service directly — all communication is via eventsAWS-services voor elk patroon
Op AWS is Step Functions het belangrijkste hulpmiddel voor orkestratie. Voor choreografie zijn de belangrijkste hulpmiddelen Amazon EventBridge (voor het routeren van gebeurtenissen tussen services met filteren op basis van inhoud), Amazon SNS (voor eenvoudige fan-out) en Amazon SQS (voor point-to-point-berichten tussen services). Je kunt patronen combineren: gebruik EventBridge voor choreografie tussen afgebakende contexten in verschillende domeinen en Step Functions voor het orkestreren van stappen binnen één domein.
Afwegingen: observeerbaarheid
Orkestratie biedt centraal inzicht: de uitvoeringsgeschiedenis van Step Functions laat precies zien waar een werkstroom zich bevindt, hoe lang elke stap duurde en wat is mislukt. Foutopsporing is eenvoudig. Choreografie verdeelt het inzicht over meerdere services en gebeurtenissenbussen: voor het traceren van één bedrijfstransactie moet je logboeken en gebeurtenissen uit veel services met elkaar in verband brengen. Daarom zijn systemen met choreografie sterk afhankelijk van correlatie-ID's en gedistribueerde tracering (AWS X-Ray) voor inzicht van begin tot eind.
# Correlation ID pattern for choreography observability
# Every event includes a correlationId that flows through the entire chain
{
'source': 'com.myapp.orders',
'detail-type': 'OrderPlaced',
'detail': {
'orderId': 'ORD-123',
'correlationId': 'CORR-abc-456', # propagated to every downstream event
'customerId': 'CUST-789',
'total': 99.99
}
}Afwegingen: koppeling
Choreografie biedt losse koppeling: een nieuwe service die naar bestaande gebeurtenissen luistert, kan worden toegevoegd zonder wijzigingen aan bestaande services. Als je bijvoorbeeld een analyseservice toevoegt die naar OrderPlaced-gebeurtenissen luistert, heeft dat geen gevolgen voor de bestel- of betalingsservice. Orkestratie introduceert sterkere koppeling tussen de orchestrator en alle services die deze aanroept. Voor een nieuwe stap moet je de definitie van de toestandsmachine aanpassen, hoewel de afzonderlijke services geïsoleerd blijven.
Afwegingen: foutafhandeling
Orkestratie maakt foutafhandeling expliciet: Catch-blokken van Step Functions definiëren terugvaltoestanden voor elk fouttype en de volledige werkstroomgeschiedenis toont de context van de fout. Bij choreografie is foutafhandeling verdeeld: elke service moet zijn eigen fouten verwerken en kan optioneel een foutgebeurtenis publiceren waarop andere services kunnen reageren. Het implementeren van saga's (compenserende transacties om werk ongedaan te maken wanneer een stap mislukt) is bij choreografie veel complexer dan bij orkestratie.
# Saga pattern in choreography: compensating events
# Happy path:
# OrderPlaced -> PaymentCharged -> InventoryReserved -> OrderShipped
#
# Failure path (InventoryReservation fails):
# InventoryReservationFailed event published
# PaymentService listens -> issues refund -> publishes PaymentRefunded
# OrderService listens -> cancels order -> publishes OrderCancelled
#
# In orchestration (Step Functions), the compensating logic is in explicit Catch statesWanneer kies je voor orkestratie
Kies bij voorkeur voor orkestratie wanneer: het bedrijfsproces een duidelijke lineaire of vertakkende volgorde heeft met expliciete uitkomsten voor succes en mislukking; je centraal inzicht nodig hebt in de processtatus voor beheer of naleving; foutafhandeling complexe compensatielogica omvat; of de werkstroom lang duurt en onderbrekingen door het opnieuw starten van services moet kunnen overleven. Voorbeelden zijn orderafhandeling, het onboarden van patiënten en de verwerking van verzekeringsclaims: allemaal werkstromen met duidelijke begin- en eindpunten en vereisten voor controleerbaarheid.
Wanneer kies je voor choreografie
Kies bij voorkeur voor choreografie wanneer: services eigendom zijn van verschillende teams die niet nauw op elkaar afgestemd zouden moeten zijn; het systeem open moet staan voor uitbreiding met nieuwe services zonder bestaande services aan te passen; gebeurtenissen feiten en geen opdrachten vertegenwoordigen (bijvoorbeeld 'OrderShipped' en niet 'ShipOrder'); of je maximale schaalbaarheid wilt omdat er geen centraal knelpunt is. Voorbeelden zijn het opnemen van analysegegevens, het verspreiden van meldingen en auditlogging: allemaal situaties waarin meerdere onafhankelijke consumenten op dezelfde gebeurtenis reageren.
Hybride architecturen
De meeste AWS-architecturen in de praktijk gebruiken beide patronen op verschillende granulariteitsniveaus. Een veelvoorkomende hybride aanpak is: gebruik EventBridge-choreografie om begrensde contexten van elkaar los te koppelen (het Order-domein genereert bijvoorbeeld gebeurtenissen; de domeinen Inventory, Payment en Shipping reageren elk onafhankelijk), en gebruik binnen het Payment-domein Step Functions-orchestratie om de interne stappen van de betalingsworkflow te coördineren (afschrijving, fraudedetectie, autorisatie, afwikkeling). Zo combineer je een losse koppeling tussen domeinen met duidelijkheid over interne processen.
# Hybrid: EventBridge for inter-domain + Step Functions for intra-domain
#
# EventBridge bus (choreography):
# Order domain publishes 'OrderPlaced'
# Payment domain receives it, starts Step Functions execution
#
# Step Functions (orchestration inside Payment domain):
# ValidateCard -> FraudCheck -> AuthorisePayment -> SettlePayment
# On success: PaymentDomain publishes 'PaymentCharged' to EventBridge bus
# On failure: Step Functions Catch -> publishes 'PaymentFailed' eventSignalen voor het SAA-C03-examen
Let tijdens het examen op deze signalen. Trefwoorden voor choreografie: 'loosely coupled', 'services react to events', 'teams own independent services', 'fan-out to multiple consumers', 'add new service without changing existing ones'. Trefwoorden voor orchestratie: 'coordinate steps in sequence', 'track workflow state', 'handle partial failures with compensation', 'human approval step', 'long-running process with error handling'. Een vraag waarin een centrale coördinator andere services aanstuurt, gaat altijd over orchestratie.
Korte controle
Test je begrip van de AWS Solutions Architect-concepten (SAA-C03) uit deze les.
Samenvatting van de les
In deze les heb je geleerd dat orchestratie een centrale coördinator (Step Functions) gebruikt voor expliciete, zichtbare controle over workflows, dat choreografie gebeurtenissen (EventBridge) gebruikt voor losse koppeling en uitbreidbaarheid, en dat de meeste architecturen in productie beide patronen op verschillende granulariteitsniveaus combineren. Hierna bekijken we de indeling van het SAA-C03-examen en een strategie voor de verdeling van je studietijd over de domeinen.
Leer Cloud & IT Cert Prep met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 150
- Lessen
- 600
Veelgestelde vragen
Is de les “Choreografie versus orkestratiepatronen” gratis?
Ja — de volledige tekst van “Choreografie versus orkestratiepatronen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cloud & IT Cert Prep wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.
Wat leer ik in “Choreografie versus orkestratiepatronen”?
Vergelijk eventchoreografie (elke service reageert onafhankelijk) met orkestratie (een centrale coördinator stuurt services aan) en kies het juiste patroon voor uw architectuur. Je oefent met Cloud & IT Cert Prep door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Cloud & IT Cert Prep te beginnen?
Ervaring vooraf is niet nodig. Cloud & IT Cert Prep op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Choreografie versus orkestratiepatronen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Cloud & IT Cert Prep?
Ja. Elke les over Cloud & IT Cert Prep bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- EventBridge: event bus en regels
- Step Functions: serverloze workflows orkestreren
- Kinesis Data Streams voor realtimegebeurtenisverwerking
- Choreografie versus orkestratiepatronen