In che modo un pattern Saga coordina le azioni reversibili dell’IA domestica?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Una saga coordina azioni reversibili dell’IA domestica suddividendo un flusso di lavoro in passaggi ordinati ed eseguendo azioni compensative quando un passaggio successivo non riesce.

È utile quando un agente interagisce con diversi servizi indipendenti che non possono condividere un’unica transazione. Il flusso di lavoro registra i progressi, rileva il punto di errore e annulla deliberatamente i passaggi che possono essere invertiti.

Una saga suddivide un’azione domestica in diversi passaggi locali

Una saga coordina un flusso di lavoro che coinvolge sistemi indipendenti trattando ogni passaggio come una transazione locale o un effetto collaterale. L’intera operazione ha successo solo dopo il completamento dei passaggi richiesti.

Il pattern Saga è definito come una sequenza di transazioni locali coordinate tramite messaggi o orchestrazione. È utile quando una singola transazione globale ACID non può includere ogni partecipante. Il pattern Saga scompone una transazione più ampia in una sequenza di transazioni locali, un modello che si adatta bene alle azioni domestiche composte da più passaggi, come illustrato nella panoramica del pattern Saga.

Un flusso di lavoro di IA domestica potrebbe arrestare un servizio multimediale, spostare una libreria, aggiornare un punto di mount, aggiornare i metadati e riavviare il servizio.

Ogni componente esegue il commit localmente, anche se l’intero flusso di lavoro non è atomico.

Ogni passaggio reversibile definisce una compensazione

Una saga non esegue il rollback di ogni servizio con un unico comando del database. I passaggi che possono essere invertiti definiscono azioni compensative che ripristinano semanticamente o compensano il lavoro precedente.

Microservices.io spiega che un errore attiva transazioni compensative per i passaggi completati in precedenza. La compensazione ripristina la coerenza invece di cancellare la cronologia. Azure descrive azioni compensative per i passaggi reversibili di una saga, supportando il modello di compensazione utilizzato nel pattern Saga di Azure.

MoveFile può essere compensato con MoveFileBack e DisableShare può essere compensato con EnableShare. Alcune azioni esterne potrebbero non avere un inverso perfetto e devono essere contrassegnate di conseguenza.

Un orchestratore può decidere l’ordine di esecuzione e quello inverso

In una saga basata sull’orchestrazione, un componente del flusso di lavoro conosce la sequenza, invia i comandi, registra le risposte e decide se continuare o avviare la compensazione.

Microservices.io mostra un orchestratore di saga che richiama passaggi e compensazioni. Una macchina a stati centrale è spesso più facile da verificare su un server domestico rispetto a una rete di reazioni indipendenti. Le indicazioni di Temporal sulle saga mostrano come un orchestratore possa registrare le compensazioni e richiamarle quando un passaggio successivo non riesce, in linea con il coordinamento in ordine inverso descritto nella documentazione sul pattern Saga di Temporal.

Quando un passaggio avanzato non riesce, le compensazioni vengono normalmente eseguite in ordine inverso rispetto alle dipendenze.

Se un punto di mount è stato modificato dopo lo spostamento dei file, il flusso di lavoro dovrebbe ripristinare il mount prima di riportare indietro i dati.

-15% OFF

La coreografia distribuisce il coordinamento tra gli eventi

Una saga basata sulla coreografia consente a ogni partecipante di reagire agli eventi ed emettere l’evento successivo. In questo modo si elimina un coordinatore centrale, ma la logica del flusso di lavoro viene distribuita tra gli iscritti.

Il pattern Saga distingue esplicitamente tra coreografia e orchestrazione. Entrambe possono coordinare le compensazioni, ma la visibilità è diversa. AWS distingue l’orchestrazione dalla coreografia basata sugli eventi, a supporto del compromesso di coordinamento descritto nella documentazione AWS sull’orchestrazione delle saga.

Per un piccolo flusso di lavoro self-hosted, l’orchestrazione è spesso più facile da ispezionare. La coreografia può comunque adattarsi ai sistemi in cui i servizi indipendenti comunicano già tramite un event bus.

La compensazione richiede idempotenza e un’identità stabile dell’azione

Una compensazione può essere ritentata dopo un timeout o un arresto anomalo, quindi dovrebbe essere sicuro eseguirla nuovamente oppure dovrebbe poter rilevare che lo stato di destinazione è già stato ripristinato.

Il modello saga presuppone semantiche esplicite per le transazioni locali e quelle compensative. Gli ID stabili del flusso di lavoro e dei passaggi aiutano a distinguere un tentativo ripetuto da un’esecuzione duplicata. Le indicazioni di IBM sulle saga evidenziano le transazioni locali e il comportamento compensativo, rafforzando il motivo per cui tentativi e compensazioni richiedono identità stabili ed esecuzione idempotente nella guida di IBM all’implementazione delle saga.

Questo si collega ai cicli ripetuti di chiamate agli strumenti degli agenti di ZimaSpace: un flusso di ripristino deve sapere se sta riprendendo l’esecuzione in sicurezza o ripetendo un effetto collaterale.

Una saga non può rendere ogni azione veramente reversibile

Alcune azioni domestiche hanno conseguenze esterne irreversibili.

Un messaggio consegnato, un file cancellato in modo sicuro o un acquisto effettuato presso terzi non possono sempre essere annullati con una chiamata API inversa.

Le saga si basano sulla compensazione invece che su un rollback distribuito universale. I passaggi irreversibili dovrebbero quindi essere eseguiti per ultimi e sottoposti a controlli rigorosi. L’analisi di Red Hat sui pattern per le transazioni distribuite sottolinea che la compensazione è un’azione correttiva a livello aziendale, non un rollback universale; questo definisce il limite descritto nei pattern di Red Hat per le transazioni distribuite.

La strategia degli agenti di ZimaSpace che privilegia la sola lettura offre una progressione più sicura dall’osservazione alla modifica; una saga coordina quindi i cambiamenti deliberatamente autorizzati.

Hub Tecnologico e AI

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.