Analisi di sistemaSolution Architect

Che cos'è l'architettura orientata agli eventi (Event-Driven Architecture, EDA) e quali problemi risolve?

Supera i colloqui con l'assistente IA Hintsage

Risposta.

L'architettura orientata agli eventi (EDA) è un approccio in cui i componenti del sistema interagiscono tramite eventi: messaggi su cambiamenti o azioni avvenute. Il sistema è composto da generatori di eventi (producers), elaboratori (consumers) e un bus di messaggi (message bus, broker) che consegna gli eventi.

L'EDA consente di creare sistemi scalabili e debolmente accoppiati. Una modifica in un componente non richiede la modifica degli altri: solo la generazione e l'elaborazione degli eventi.

Esempio di codice (generazione e elaborazione di eventi in Node.js):

const EventEmitter = require('events'); class MyEmitter extends EventEmitter {} const emitter = new MyEmitter(); // Gestore di eventi emitter.on('userCreated', (user) => { console.log('Utente creato:', user); }); // Generazione di un evento emitter.emit('userCreated', { id: 1, name: 'Ivan' });

Caratteristiche principali:

  • Garantisce un accoppiamento debole tra i componenti
  • Facile da estendere e modificare la logica di reazione agli eventi
  • Richiede una progettazione di qualità e il monitoraggio delle interazioni

Domande trabocchetto.

L'EDA è l'opposto dell'architettura a microservizi?

No, non è un'opposizione. I microservizi spesso usano l'EDA per la comunicazione tra i servizi.

Si può usare l'EDA solo con broker di messaggi?

Non necessariamente. Eventi locali (ad esempio, tramite il pattern Observer) implementano anche l'EDA, ma i broker permettono di costruire sistemi distribuiti.

L'EDA garantisce l'immutabilità dei dati?

No. L'EDA riguarda l'interazione tra i componenti; la resilienza alla rielaborazione (idempotenza) e la coerenza dei dati devono essere implementate esplicitamente.