Sto leggendo un libro sulle applicazioni aziendali di architettura. In questo libro viene introdotto il pattern Event Sourcing che può essere utilizzato come parte "comando" di un'architettura CQRS (Command and Query Responsibility Segregation). Event Sourcing è descritto da Martin Fowler come:
The fundamental idea of Event Sourcing is that of ensuring every change to the state of an application is captured in an event object, and that these event objects are themselves stored in the sequence they were applied for the same lifetime as the application state itself.
Sono abituato alle applicazioni che usano il pattern Service Layer, che descriverò come: le modifiche nell'interfaccia utente chiamano un metodo, che quindi attiva la chiamata di servizio appropriata in un livello middleware che delega la chiamata al back-end dove le informazioni sono aggiornato e notifica al chiamante il risultato.
Questa descrizione di un livello di servizio non mi sembra molto diversa da Event Sourcing.
Quali sono le differenze tra Event Sourcing e il modello Service Layer?