Mønstre for koreografi kontra orkestrering
Sammenlign hendelseskoreografi (hver tjeneste reagerer uavhengig) med orkestrering (en sentral koordinator styrer tjenestene), og velg riktig mønster for arkitekturen din
Mønstre for koreografi kontra orkestrering er en gratis leksjon i Cloud & IT Cert Prep på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cloud & IT Cert Prep, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.
To tilnærminger til koordinering av mikrotjenester
Når mikrotjenester må samarbeide for å fullføre en forretningsprosess, finnes det to grunnleggende koordineringsmønstre. Orchestration bruker en sentral koordinator (for eksempel Step Functions) som uttrykkelig styrer hver tjeneste. Choreography har ingen sentral koordinator — tjenestene lytter etter hendelser og reagerer uavhengig av hverandre. Å forstå hvilket mønster som bør brukes, og når de bør kombineres, er en viktig arkitektferdighet som testes på SAA-C03-eksamen.
Orchestration-mønsteret forklart
I orchestration styrer en sentral tjeneste (orkestratoren) rekkefølgen på operasjonene. Den kaller Tjeneste A, venter på svaret, kaller deretter Tjeneste B og så videre. Orkestratoren har full oversikt over prosessens tilstand, håndterer feil og nye forsøk og kan ta beslutninger basert på mellomliggende resultater. På AWS er Step Functions den kanoniske orkestratoren — den definerer hele arbeidsflyten som en tilstandsmaskin og driver hvert trinn.
# 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 momentChoreography-mønsteret forklart
I choreography kommuniserer tjenestene gjennom hendelser uten en sentral koordinator. Tjeneste A fullfører oppgaven sin og publiserer en hendelse (for eksempel OrderValidated) til en hendelsesbuss eller et topic. Tjeneste B lytter etter OrderValidated-hendelser og behandler betalingen, før den publiserer PaymentCharged. Tjeneste C lytter etter PaymentCharged og sender ordren. Hver tjeneste er autonom og løst koblet — den kjenner bare til hendelsene den konsumerer og produserer, ikke til de andre tjenestene.
# 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-tjenester for hvert mønster
På AWS er Step Functions det primære verktøyet for orchestration. For choreography er de viktigste verktøyene Amazon EventBridge (for ruting av hendelser mellom tjenester med innholdsbasert filtrering), Amazon SNS (for enkel fan-out) og Amazon SQS (for punkt-til-punkt-meldingsutveksling mellom tjenester). De kan kombinere mønstrene: bruk EventBridge til choreography på tvers av domener mellom avgrensede kontekster, og Step Functions til å orkestrere trinn innenfor ett enkelt domene.
Avveininger: Observerbarhet
Orchestration gir sentralisert oversikt — kjøringshistorikken i Step Functions viser nøyaktig hvor en arbeidsflyt befinner seg, hvor lang tid hvert trinn tok og hva som feilet. Feilsøking er enkelt. Choreography fordeler oversikten på flere tjenester og hendelsesbusser — sporing av én enkelt forretningstransaksjon krever at logger og hendelser fra mange tjenester sammenstilles. Derfor er choreography-systemer sterkt avhengige av korrelasjons-ID-er og distribuert sporing (AWS X-Ray) for oversikt fra ende til ende.
# 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
}
}Avveininger: Kobling
Choreography gir løsere kobling — å legge til en ny tjeneste som lytter etter eksisterende hendelser, krever ingen endringer i eksisterende tjenester. Hvis De for eksempel legger til en analysetjeneste som lytter etter OrderPlaced-hendelser, påvirker det ikke ordre- eller betalingstjenesten. Orchestration innfører tettere kobling mellom orkestratoren og alle tjenestene den kaller — å legge til et nytt trinn krever at tilstandsmaskindefinisjonen endres, selv om de enkelte tjenestene fortsatt er isolert.
Avveininger: Feilhåndtering
Orchestration gjør feilhåndteringen eksplisitt — Catch-blokker i Step Functions definerer reservetilstander for hver feiltype, og hele arbeidsflytens historikk viser konteksten for feilen. I choreography er feilhåndteringen distribuert — hver tjeneste må håndtere sine egne feil og kan eventuelt publisere en feilhendelse som andre kan reagere på. Implementering av sagaer (kompenserende transaksjoner som omgjør arbeid når et trinn feiler) er langt mer komplisert i choreography enn i orchestration.
# 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 statesNår De bør velge orchestration
Foretrekk orchestration når: forretningsprosessen har en tydelig lineær sekvens eller forgreninger med eksplisitte resultater for suksess og feil; De trenger sentralisert oversikt over prosessstatus av hensyn til drift eller samsvarskrav; feilhåndteringen innebærer kompleks kompensasjonslogikk; eller arbeidsflyten kjører lenge og må tåle omstarter av tjenester. Eksempler er ordreoppfyllelse, onboarding av pasienter og behandling av forsikringskrav — arbeidsflyter som alle har tydelige krav til start, slutt og revisjonsspor.
Når De bør velge choreography
Foretrekk choreography når: tjenestene eies av ulike team som ikke bør koordineres tett; systemet skal kunne utvides med nye tjenester uten at eksisterende tjenester endres; hendelser representerer fakta snarere enn kommandoer (for eksempel «OrderShipped», ikke «ShipOrder»); eller De ønsker maksimal skalerbarhet siden det ikke finnes noen sentral flaskehals. Eksempler er inntak av analysedata, utsending av varsler og revisjonslogging — tilfeller der flere uavhengige konsumenter reagerer på den samme hendelsen.
Hybride arkitekturer
De fleste AWS-arkitekturer i den virkelige verden bruker begge mønstrene på ulike detaljnivåer. Et vanlig hybridoppsett er å bruke EventBridge choreography til å koble fra avgrensede kontekster (for eksempel at Order-domenet sender ut hendelser, mens Inventory-, Payment- og Shipping-domenene svarer uavhengig av hverandre), og samtidig bruke Step Functions orchestration i Payment-domenet til å koordinere trinnene i den interne betalingsarbeidsflyten (belaste, kontrollere svindel, autorisere og gjennomføre oppgjør). Dette gir løs kobling mellom domenene og tydelighet i de interne prosessene.
# 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' eventSignaler på SAA-C03-eksamen
Se etter disse signalene på eksamen. Nøkkelord for choreography: «løst koblet», «tjenester reagerer på hendelser», «team eier uavhengige tjenester», «distribusjon til flere konsumenter», «legg til en ny tjeneste uten å endre eksisterende tjenester». Nøkkelord for orchestration: «koordiner trinn i en sekvens», «spor arbeidsflytens tilstand», «håndter delvise feil med kompenserende handlinger», «trinn som krever menneskelig godkjenning», «langvarig prosess med feilhåndtering». En oppgave som beskriver en sentral koordinator som styrer andre tjenester, handler alltid om orchestration.
Sjekk deg selv
Test forståelsen Deres av AWS Solutions Architect-konsepter (SAA-C03) fra denne leksjonen.
Oppsummering av leksjonen
I denne leksjonen har De lært at orchestration bruker en sentral koordinator (Step Functions) for eksplisitt og synlig kontroll over arbeidsflyten, at choreography bruker hendelser (EventBridge) for løs kobling og utvidbarhet, og at de fleste produksjonsarkitekturer kombinerer begge mønstrene på ulike detaljnivåer. Deretter skal vi se nærmere på formatet for SAA-C03-eksamen og hvordan De bør prioritere studietiden etter domenenes vekt.
Lær deg Cloud & IT Cert Prep med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 150
- Leksjoner
- 600
Ofte stilte spørsmål
Er leksjonen «Mønstre for koreografi kontra orkestrering» gratis?
Ja – hele teksten i «Mønstre for koreografi kontra orkestrering» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cloud & IT Cert Prep-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.
Hva lærer jeg i «Mønstre for koreografi kontra orkestrering»?
Sammenlign hendelseskoreografi (hver tjeneste reagerer uavhengig) med orkestrering (en sentral koordinator styrer tjenestene), og velg riktig mønster for arkitekturen din Du øver på Cloud & IT Cert Prep med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Cloud & IT Cert Prep?
Ingen tidligere erfaring er nødvendig. Cloud & IT Cert Prep på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Mønstre for koreografi kontra orkestrering»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Cloud & IT Cert Prep-leksjonen?
Ja. Alle Cloud & IT Cert Prep-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- EventBridge: Hendelsesbuss og regler
- Step Functions: Orkestrering av serverløse arbeidsflyter
- Kinesis Data Streams for sanntidsbehandling av hendelser
- Mønstre for koreografi kontra orkestrering