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
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…