De beste praktijken voor gebouwen met meerdere huurders kunnen averechts werken.

  • door Derek Comartin
  • Gepubliceerd op Derek Comartin (CodeOpinion)
  • Toegevoegd op
  • Architecture
De beste praktijken voor gebouwen met meerdere huurders kunnen averechts werken. - Derek Comartin (CodeOpinion)
Afbeelding: Derek Comartin (CodeOpinion)

Je hebt een multi-tenant systeem, maar je ontdekt een behoorlijk ernstige bug. Hoe kan dat? Je hebt toch alle best practices gevolgd!

Uw HTTP API plaatst een bericht in een wachtrij om een factuur te genereren. Een achtergrondproces pakt dat bericht op en voert het uit. Alles lijkt te werken. Er waren geen uitzonderingen, geen mislukte databaseaanroepen en geen fouten in uw logbestanden.

Er ging echter iets vreselijk mis.

Het verzoek had voor huurder A uitgevoerd moeten worden, maar in werkelijkheid werd het uitgevoerd voor huurder B. De verkeerde huurder.

YouTube

Bekijk mijn YouTube-kanaal , waar ik allerlei content over softwarearchitectuur en -ontwerp plaats, waaronder deze video waarin alles uit dit bericht wordt uitgelegd.

Je hebt waarschijnlijk geprobeerd dit van meet af aan te voorkomen. Misschien heb je bij het ontwerp besloten dat je niet wilde dat de tenant-ID overal rondslingerde en werd doorgegeven van je HTTP API naar berichten, achtergrondtaken en je database…