Quelle est la base de données du « Grand débat » ?

Le site du Grand débat national a été fortement sollicité entre le 15 janvier 2019 (date d’ouverture des contributions) et le 18 mars 2019 (fin des contributions en ligne). Avec presque 2 millions de contributions, le site a dû tenir la charge d’un nombre très important de connexion et de requêtes (à la fois en lecture et en écriture) pendant une période de temps limité.

Derrière l’outil, il y a Cap collectif, une civic-tech qui a déjà à son actif plusieurs projets de consultations nationales : loi pour une république numérique, projet de loi bio-éthique, consultation sur les retraites, états-généraux du numérique… Proposant un outil SAAS.

Pour le Grand débat, une ferme de serveur a été louée à OVH avec infrastructure multiserveurs. La particularité du site est de recevoir des pics de connexion (lors de passage TV par exemple) jusqu’à 15000/sec.

  • La base de donnée repose sur MySQL. À noter l’utilisation très pertinente des UUID pour les clés primaires afin, lors de requêtes extérieurs ou d’exports par exemple, d’éviter de connaître le nombre de contributions précédentes (ce qui fait sens dans ce cas et contribue à l’anonymisation des données) ;
  • Cloudflare sert à absorber le trafic et à le répartir via des services distribués ;
  • Le code est fermé pour éviter que certains clients de la plateforme puisse manipuler les votes « contre » ;
  • PHP et Symfony sont utilisés historiquement mais JS prend de plus en plus de poids ;
  • À l’autre bout de la chaîne, GraphQL, permet aux développeurs d’interroger les données du site. Les données, en OpenData sont disponibles en téléchargement aux formats Json et CSV.