Les files d'attente (en particulier les files d'attente tolérantes aux pannes et persistantes) permettent la communication entre les composants et permettent en fin de compte aux lecteurs de file d'attente d'être asynchrones avec les lecteurs. Cela signifie que les lecteurs et les rédacteurs peuvent être mis à l'échelle en fonction de l'utilisation de la file d'attente.
Considérons l'exemple simple de l'entretien des requêtes Web. Si une opération lourde est poussée dans la file d'attente, un autre ensemble de composants peut lire la file d'attente et gérer la requête sans que l'auteur ne soit affecté et ainsi permettre au programme d'écoute HTTP de traiter plus de demandes. À mesure que le nombre d'éléments dans la file d'attente augmente, plus de lecteurs peuvent être mis en ligne pour les gérer. En termes de fiabilité, si la file d'attente est fiable, les messages entre les composants ne sont pas perdus, la communication est par conséquent plus fiable. Les lecteurs et les écrivains peuvent monter et descendre mais tant que les messages sont en sécurité, alors vous avez la base d'un système plus fiable que celui où les messages peuvent être perdus.
En effet, vous créez un système avec un couplage à temps d'exécution inférieur, et donc une panne à un point ne se propage pas nécessairement à l'échelle du système. Permettre d'utiliser plus efficacement les stratégies de tolérance aux pannes.