Ce n'est pas que pour ca mais cette raison seule est largement suffisante.
Note que j'ai évoqué qu'on avait envisagé d'utiliser un memcached , qui il me semble jouerais le même rôle que ton redis (je connais pas super bien redis…).
Le besoin qu'on avait et qui n'est pas dans la partie de mon texte que tu as quoté, c'est qu'on voulait un jeu qui tourne "en permanence", pas seulement quand un client fait une requête, et on ne pouvait pas faire ca dans Django, il nous fallait des worker en background pour faire tourner ca, et c'est la que c'est devenu une usine a gaz: apache, django, rabbitmq (amqp), celery (background workers), pgsql…(et le memcache/redis qu'on avait même pas introduit mais qui aurait fini par arriver tôt ou tard…)
Et on a remplacé tout ca par… node.js . Qui, dans la liste ci-dessus, remplace tout sauf pgsql. Faut reconnaitre que c'était plusieurs ordres de magnitude plus simple et plus maitrisable, avec moins d'interactions complexes et donc moins de risque de bugs difficile a remonter avec un seul processus.
[^] # Re: Mon expérience
Posté par case42 . En réponse au journal Réflexions à propos de NodeJS et de Javascript plus globalement. Évalué à 2.
Ce n'est pas que pour ca mais cette raison seule est largement suffisante.
Note que j'ai évoqué qu'on avait envisagé d'utiliser un memcached , qui il me semble jouerais le même rôle que ton redis (je connais pas super bien redis…).
Le besoin qu'on avait et qui n'est pas dans la partie de mon texte que tu as quoté, c'est qu'on voulait un jeu qui tourne "en permanence", pas seulement quand un client fait une requête, et on ne pouvait pas faire ca dans Django, il nous fallait des worker en background pour faire tourner ca, et c'est la que c'est devenu une usine a gaz: apache, django, rabbitmq (amqp), celery (background workers), pgsql…(et le memcache/redis qu'on avait même pas introduit mais qui aurait fini par arriver tôt ou tard…)
Et on a remplacé tout ca par… node.js . Qui, dans la liste ci-dessus, remplace tout sauf pgsql. Faut reconnaitre que c'était plusieurs ordres de magnitude plus simple et plus maitrisable, avec moins d'interactions complexes et donc moins de risque de bugs difficile a remonter avec un seul processus.