Bots Discord

Le sharding : ce que c'est et quand on vous l'impose

Relu le 6 septembre 2026 2 min de lecture

Un shard est une connexion à Discord qui gère une portion de vos serveurs. En dessous d'une certaine taille, il vous en faut exactement un et vous ne devriez pas y penser du tout ; au-delà, Discord vous impose de diviser, et quelques aspects de votre bot doivent changer.

Le seuil

Discord exige qu'un bot soit shardé dès qu'il est présent sur 2 500 serveurs ou plus. C'est une exigence stricte et non une suggestion : sans cela la connexion est refusée. En dessous, un shard unique est correct et en ajouter n'apporte que de la complexité.

Ce qui change avec le sharding

ÉlémentAvantAprès
Connexions à DiscordUneUne par shard
MémoireUn processusGénéralement un processus par shard, ou un gestionnaire qui les lance
Obtenir un serveur par identifiantImmédiatIl peut vivre sur un autre shard
Compter les utilisateurs totauxUne propriétéUne requête sur tous les shards que vous devez agréger
RedémarrerUn processusPar vagues, si vous voulez éviter une coupure complète
Les opérations inter-shards sont ce qui casse le code existant

Tout ce qui supposait que votre bot voyait tous les serveurs à la fois cesse d'être vrai. Une commande /stats qui compte les serveurs, une annonce globale, une recherche par identifiant d'utilisateur : tout cela doit interroger chaque shard et combiner les réponses. C'est le vrai travail de migration, et il vaut la peine d'écrire ces commandes prudemment bien avant d'atteindre le seuil.

Si vous vous en approchez

  1. Utilisez le gestionnaire de shards de votre bibliothèque

    Les deux grandes bibliothèques en ont un. Écrire sa propre orchestration de processus est un problème résolu qu'il est inutile de résoudre à nouveau.

  2. Auditez tout ce qui itère sur tous les serveurs

    Ce sont vos futurs bugs. Trouvez-les tant que le bot est assez petit pour qu'ils marchent par hasard.

  3. Planifiez la mémoire par shard, pas au total

    Chaque shard garde son propre cache. Le sharding ne réduit pas l'usage mémoire : il le répartit, et augmente souvent le total.

  4. Testez avec deux shards bien avant d'en avoir besoin de beaucoup

    Forcer deux shards en local fait remonter immédiatement chaque hypothèse inter-shards, sans trafic et sans enjeu.

Si vous n'approchez pas des 2 500 serveurs, ce n'est pas votre problème

Les bots rament ou manquent de mémoire pour des raisons ordinaires : une fuite, une boucle coûteuse, trop de cache. Sharder un petit bot pour corriger les performances ajoute des pièces et ne corrige rien, car le goulot n'a jamais été le nombre de connexions.