Event Bus

Architecture 🟡 Mid

Definition

Canal central de communication par evenements au sein d'une application. Les composants publient et s'abonnent sans se connaitre mutuellement.

Analogie

Le tableau d'affichage d'une entreprise : n'importe qui peut y poster une annonce, n'importe qui peut la lire.

Exemple de code

class EventBus {
  #handlers = {};
  on(event, fn) { (this.#handlers[event] ??= []).push(fn); }
  emit(event, data) { this.#handlers[event]?.forEach(fn => fn(data)); }
}

Cas d'usage

Communication entre modules d'un monolithe modulaire ou composants UI decouples.

Anti-pattern

Event bus global sans typage — impossible de tracer quels events existent.
#architecture#interview#messaging