Saga Pattern
Pattern Saga
Una saga collega diversi passaggi salvati in un unico lavoro aziendale. Se un passaggio successivo fallisce, viene ripetuto o viene aggiunto un altro passaggio per correggere quanto accaduto in precedenza.
saga ID + local transaction -> next step; failure -> retry | compensation -> terminal state- ✓Volo trattenutoflight_tx_7
- ✓Scheda caricatapay_tx_8
- !Hotel non disponibilehotel_tx_9
saga ID + local transaction -> next step; failure -> retry | compensation -> terminal stateJOBUn altro esempio
L'ordine `984` riserva lo stock, autorizza NT$248 e poi richiede la spedizione. La spedizione rifiuta l'indirizzo. La saga annulla l'autorizzazione e libera lo stock con lo stesso ID saga. Poi registra l'ordine come compensato.
Parti principali
- 01ID e stato della saga
- 02Servizi partecipanti
- 03Transazioni locali
- 04messaggi di esito
- 05Ritenta o compensazione
- 06Audit e recupero manuale
Usalo quando
Usa una saga quando un lavoro aziendale unico coinvolge servizi o archivi di dati. Usala solo quando un singolo passo di database tutto-o-nulla non può coprire l'intero lavoro. Definisci ogni passo salvato, azione successiva, ritento, azione correttiva e stato finale.
Non usarlo quando
Non aggiungere una saga quando un salvataggio su database può completare l'intero lavoro. Un'azione di correzione è un lavoro nuovo. Può fallire o lasciare un risultato diverso. Chiedi a una persona quando un'azione non è sicura da annullare.
Nome usato nel codice
saga ID + local transaction -> next step; failure -> retry | compensation -> terminal state Prima di spedire
Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.
Outcome: Complete the task with Pattern Saga (Saga Pattern). User context: L'ordine `984` riserva lo stock, autorizza NT$248 e poi richiede la spedizione. La spedizione rifiuta l'indirizzo. La saga annulla l'autorizzazione e libera lo stock con lo stesso ID saga. Poi registra l'ordine come compensato. Technical concept or control: Pattern Saga (Saga Pattern). Why it fits: Usa una saga quando un lavoro aziendale unico coinvolge servizi o archivi di dati. Usala solo quando un singolo passo di database tutto-o-nulla non può coprire l'intero lavoro. Definisci ogni passo salvato, azione successiva, ritento, azione correttiva e stato finale. Do not use it when: Non aggiungere una saga quando un salvataggio su database può completare l'intero lavoro. Un'azione di correzione è un lavoro nuovo. Può fallire o lasciare un risultato diverso. Chiedi a una persona quando un'azione non è sicura da annullare. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): Nessun singolo standard ufficiale controlla l'intero termine. Il suo significato può cambiare tra team, piattaforme o framework. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.
Controlla questa richiesta
Review how Pattern Saga (Saga Pattern) is used now. Definition: Una saga collega diversi passaggi salvati in un unico lavoro aziendale. Se un passaggio successivo fallisce, viene ripetuto o viene aggiunto un altro passaggio per correggere quanto accaduto in precedenza. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.