Een message queue is een wachtrij voor taken: een verzender zet er berichten in, en een ontvanger haalt ze er één voor één uit om te verwerken. De twee kanten hoeven nooit tegelijk klaar te staan, want de queue houdt elk bericht veilig op volgorde tot het wordt opgepakt.
Stel je het nummertjessysteem voor bij een drukke versbalie. Je trekt een nummer en doet rustig door, het personeel helpt op volgorde, en niemand wordt overgeslagen, ook niet als het stormloopt. Een message queue werkt zo voor software: verzoeken schuiven aan in de rij, en het systeem werkt ze gestaag af in plaats van alles tegelijk te willen doen. Dit is de kern van asynchrone verwerking, waarbij werk nu wordt afgegeven en even later wordt afgerond.
Queues bewijzen zich tijdens piekverkeer. Komen er in één minuut duizend bestellingen binnen, dan vangt de queue ze op en verwerkt het systeem ze in een gezond tempo, in plaats van te bezwijken onder de golf. Een message broker is meestal wat deze queues draait en regelt hoe berichten erdoorheen bewegen. Er is nog een tweede, stillere winst: het trage werk gaat van het pad af waar de gebruiker op wacht. Stel, iemand uploadt een video en je app moet er drie kleinere versies van maken, een klus van veertig seconden. Je wilt niet dat de uploadknop veertig seconden staat te draaien. Je zet dus één bericht op de queue en vertelt de gebruiker dat de upload is gelukt, terwijl een worker op de achtergrond de conversie afmaalt. De persoon gaat door, de zware taak is klaar wanneer hij klaar is, en verdubbelt het verkeer, dan zet je er gewoon een tweede worker bij die dezelfde rij leest. De queue is de naad waardoor het snelle deel en het trage deel op een ander tempo kunnen draaien.
Bij TopDevs gebruiken we message queues om het systeem van een klant stabiel te houden onder belasting, zodat een plotse uitbarsting van activiteit een beheersbare rij wordt in plaats van een crash.