Unit of Work

Architecture 🔴 Senior

Definition

Maintient une liste d'objets modifies pendant une transaction et coordonne l'ecriture des changements en une seule operation atomique.

Analogie

Un panier d'achat : tu ajoutes/supprimes des articles, et tout est valide en une seule fois au passage en caisse.

Exemple de code

class UnitOfWork {
  #changes = [];
  track(entity) { this.#changes.push(entity); }
  async commit() {
    await db.transaction(tx => this.#changes.forEach(e => tx.save(e)));
  }
}

Cas d'usage

Sauvegarder plusieurs entites modifiees en une transaction atomique (ORM comme EF Core).

Anti-pattern

Sauvegarder chaque entite individuellement sans transactionnalite.

Termes lies

#architecture#interview#ddd