Vorrei chiedere aiuto per capire come vengono utilizzati i sistemi di event-sourcing quando si tratta di applicazioni Web e richieste POST. Capisco come sono archiviati gli eventi e l'architettura event-driven di coerenza finale. Comprendo CQRS ecc., Ma non riesco a immaginare come un meccanismo dell'archivio eventi gestisca qualcosa come una richiesta POST HTML quando l'applicazione web nel browser deve restituire lo stato modificato nella pagina seguente a cui siamo reindirizzati, ovvero:
-
Compilare un modulo HTML su una pagina per aggiornare alcune risorse.
-
Premendo invia per inviare i dati a un'applicazione web.
-
Viene creato un evento con i dati da aggiornare e l'ID della risorsa.
-
L'evento viene generato e verrà eventualmente salvato nell'archivio degli eventi.
-
Il browser mi porta a una pagina diversa nell'applicazione web.
-
Invio una richiesta di query per recuperare la risorsa aggiornata (attraverso la ripetizione di eventi) perché voglio presentare all'utente lo stato più recente della risorsa.
-
La query non restituisce lo stato più recente perché la coerenza finale non è ancora avvenuta e il sistema ha ancora bisogno di alcuni millisecondi per aggiornare l'archivio eventi.
-
Vedo che l'aggiornamento non ha mai avuto luogo. La risorsa sembra sempre la stessa.
-
L'archivio eventi ha salvato la risorsa e ora posso aggiornare il browser e verificare che l'aggiornamento abbia effettivamente avuto luogo.
Cosa mi manca, per favore? Sembra che ci sia qualcosa di veramente semplice qui, ma non riesco a vedere come un'applicazione web possa funzionare con l'event sourcing. Ci stiamo affidando al fatto che l'event-sourcing sia più veloce dell'applicazione web e supponiamo che i dati saranno sempre coerenti prima che l'utente prenda la pagina successiva? Non sarebbe un po 'rischioso durante l'uso intensivo del sistema?
Grazie