Les meilleures pratiques en matière de colocation peuvent se révéler contre-productives.

  • par Derek Comartin
  • Publié sur Derek Comartin (CodeOpinion)
  • Sélectionné le
  • Architecture
Les meilleures pratiques en matière de colocation peuvent se révéler contre-productives. - Derek Comartin (CodeOpinion)
Image : Derek Comartin (CodeOpinion)

Vous avez un système mutualisé, mais vous découvrez un bug assez grave. Comment est-ce possible ? Vous avez pourtant suivi toutes les bonnes pratiques !

Votre API HTTP place un message dans une file d'attente pour générer une facture. Un processus en arrière-plan récupère ce message et l'exécute. Tout semble s'être déroulé correctement : aucune exception, aucun appel de base de données n'a échoué et aucun message d'erreur n'apparaît dans vos journaux.

Cependant, quelque chose a terriblement mal tourné.

La requête était censée s'exécuter pour le locataire A, mais elle s'est en réalité exécutée pour le locataire B. Le mauvais locataire.

YouTube

N'hésitez pas à consulter ma chaîne YouTube , où je publie toutes sortes de contenus sur l'architecture et la conception de logiciels, y compris cette vidéo qui reprend tous les éléments de cet article.

Vous avez probablement essayé d'empêcher cela dès le départ. Vous avez peut-être fait le choix, lors de la conception, de ne pas diffuser l'identifiant du locataire partout et de le transmettre de votre API HTTP aux messages, aux tâches en arrière-plan et à votre base de données…