Event Sourcing
Architecture 🔴 SeniorDéfinition
Stocke l'état comme une séquence immuable d'evenements plutôt que comme l'état courant. L'état se reconstruit en rejouant les evenements.
Analogie
Un relève bancaire : tu ne stockes pas le solde, mais l'historique de toutes les transactions.
Exemple de code
const events = [
{ type: 'AccountOpened', balance: 0 },
{ type: 'MoneyDeposited', amount: 100 },
{ type: 'MoneyWithdrawn', amount: 30 },
];
const balance = events.reduce(applyEvent, 0); // 70
Cas d'usage
Audit trail complet, systèmes financiers, undo/redo, debug temporel.
Anti-pattern
Evenements mutables ou supprimes — on perd la propriété d'immutabilite.