Hvad betyder Durable execution?
Durable execution handler om at gøre en programs udførelse vedvarende. Et system kan huske, hvilke trin der er udført, hvilke resultater der er modtaget, og hvad det venter på. Hvis en proces stopper, kan arbejdet genoptages ud fra den registrerede historik.
Det er relevant for arbejdsgange, som varer længere end et enkelt webkald: en kundegodkendelse, en leverandørforespørgsel eller en AI-agent med flere værktøjstrin. Teknikken er ikke en garanti for, at enhver ekstern handling kun sker én gang. Den grænse skal håndteres med idempotens, kvitteringer og klare regler for genforsøg.
Gem beslutninger og resultater undervejs
En vedvarende arbejdsgang har en identitet og en historik. I systemer som Temporal kan kode genafspilles mod den registrerede historik for at genskabe tilstanden. Allerede registrerede resultater kan dermed bruges, mens arbejdet fortsætter fra det relevante punkt. Det kræver, at workflow-koden følger platformens regler, blandt andet om forudsigelig genafspilning. Tilfældighed, modelkald og eksterne API-kald må ikke uden videre udføres igen som skjulte sideeffekter under replay. De hører hjemme i de aktivitetsgrænser eller mekanismer, platformen stiller til rådighed.
Beskyt handlinger på den anden side af netværket
Forestil jer, at et eksternt system opretter en ordre, men forbindelsen afbrydes før kvitteringen når tilbage. Arbejdsgangen ved nu ikke sikkert, om handlingen lykkedes. Et blindt genforsøg kan skabe endnu en ordre. Derfor bør aktivitetskald bruge en stabil forretningsnøgle, understøttet idempotens eller et opslag, der afklarer resultatet. Aftal også timeout, maksimale forsøg og hvornår et menneske skal undersøge sagen. En holdbar proces skal kunne vente og genoptage, men også afsluttes tydeligt, hvis forudsætningerne ikke længere gælder eller kunden har trukket sin anmodning tilbage.
Et eksempel fra praksis
En agent klargør et indkøbsforslag og venter på lederens godkendelse. Forslaget, beløbet og den valgte leverandør gemmes som en bestemt version. Efter et servernedbrud kan forløbet stadig vise samme forslag og afvente beslutningen. Når godkendelsen kommer, kontrolleres version og gyldighed igen. Ordreoprettelsen bruger en unik reference, og et efterfølgende opslag bekræfter den registrerede ordre. Driftsprøven omfatter både nedbrud under ventetiden og afbrydelse lige efter ordreoprettelsen.
Typiske faldgruber
- At tolke vedvarende workflow-tilstand som garanti mod alle eksterne dubletter.
- At ændre workflow-kode uden at tage hensyn til allerede igangværende forløb.
- At gemme en godkendelse uden at binde den til forslagets konkrete version.
Det skal I afklare
- Giv hvert forløb en stabil identitet og dokumentér tilstandene mellem trinene.
- Test nedbrud før og efter hver handling med en ekstern virkning.
- Definér genforsøg, udløb, annullering og manuel afklaring af tvetydige resultater.
Spørgsmål og svar
Er durable execution det samme som en kø?
Nej. En kø transporterer eller opbevarer arbejde. Durable execution holder styr på et samlet forløbs fremdrift, ventepunkter og resultater. En løsning kan bruge begge dele.
Skal en kort AI-chat bruge det?
Ikke nødvendigvis. Behovet vokser, når opgaver spænder over flere systemer, kræver godkendelser eller skal fortsætte efter afbrydelser med bevaret historik.
Kilder og videre læsning
De tekniske begreber bygger på nedenstående kilder. Eksemplerne er illustrative og viser, hvordan I kan arbejde med emnet.
- Temporal: Workflow Execution overview ↗Vedvarende historik, replay og genoptagelse efter afbrydelser.
- Temporal: Activity Execution ↗Aktiviteters timeout, genforsøg og eksterne resultater.

