Přeskočit na obsah
_CORE
AI & agentní systémy Podnikové informační systémy Cloud & Platform Engineering Datová platforma & integrace Bezpečnost & compliance QA, testování & observabilita IoT, automatizace & robotika Mobilní & digitální produkty Bankovnictví & finance Pojišťovnictví Veřejná správa Obrana & bezpečnost Zdravotnictví Energetika & utility Telco & média Průmysl & výroba Logistika & e-commerce Retail & věrnostní programy
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
CS EN DE
Pojďme to probrat

Saga Pattern — distribuované transakce bez 2PC

27. 09. 2024 Aktualizováno: 24. 03. 2026 1 min čtení advanced

Architektura Expert

Saga Pattern — distribuované transakce bez 2PC

SagaTransactionsMicroservices 3 min čtení

Implementace Saga patternu pro konzistenci dat napříč mikroservisami. Choreografie vs orchestrace.

Problém distribuovaných transakcí

V monolitu stačí DB transakce. V mikroservisách má každá služba vlastní DB — klasické transakce nefungují. Saga je sekvence lokálních transakcí s kompenzačními akcemi.

Choreografie vs Orchestrace

Choreografie: Služby komunikují přes events, žádný centrální koordinátor.

Orchestrace: Centrální Saga orchestrátor řídí sekvenci kroků.

class CreateOrderSaga {
    steps = [
        { action: 'order.create', compensate: 'order.cancel' },
        { action: 'payment.process', compensate: 'payment.refund' },
        { action: 'inventory.reserve', compensate: 'inventory.release' },
        { action: 'order.confirm', compensate: null }
    ];
    async execute(data) {
        const completed = [];
        for (const step of this.steps) {
            try {
                await this.invoke(step.action, data);
                completed.push(step);
            } catch (error) {
                for (const s of completed.reverse())
                    if (s.compensate) await this.invoke(s.compensate, data);
                throw error;
            }
        }
    }
}

Kdy co použít

  • Choreografie — jednodušší sagy (2-4 kroky)
  • Orchestrace — složitější sagy (5+ kroků)
  • Nástroje: Temporal, Camunda, AWS Step Functions

Shrnutí

Saga pattern vyžaduje pečlivý návrh kompenzačních akcí a idempotentních operací. Pro komplexní workflows doporučujeme orchestraci s Temporal.

Potřebujete pomoct s implementací?

Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.

Nezávazná konzultace

Sdílet:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.