Je peux te donner un exemple precis. On develope un service de classification de document. Ce qui est important dans le service c'est de pouvoir specifier la classification d'un document en particulier. La plupart du temp qu'un utilisateur va passer (au moins a ce stade la du projet) est de rentrer des classificatons.
On eut aussi pouvoir fournir des operations de recherches sur les documents, le probleme est qu'on a pas encore un bon algo pour faire ca. Du coup pour chercher un document avec des proprietes particuliere il faut en gros faire une recherche exhaustive des documents. Quand le nombre de propriete que tu cherches est faible, ca se passe bien. Mais assez rapidement le cout de calcul est de plusieurs secondes.
Si on fait tourner la recherche sur le meme service qui delivre l'outil de classification, on prend le risque que tous les serveurs soient occupe a faire de la recherche. Et du coup les utilisateurs qui font de la classification serait ralenti, voir pourrait eventuellement perdre du travail.
Du fait on a separer les services qui servent a la classification de ceux qui servent a faire de la recherche. Du coup meme si on a des gens qui spamment l'outil de recherche, les utilisateurs qui classifient ne seront pas impacte.