Zurück zum Blog
Discord-BotsSkalierungTypeScriptPerformance

Lessons learned: Einen Discord-Bot auf 50.000 Mitglieder skalieren

Was ich über Sharding, Caching und Performance gelernt habe, während mein Bot mit den Mitgliedern wuchs.

1 Min. Lesezeit

Einen Discord-Bot zu skalieren ist einfach, bis es plötzlich nicht mehr so einfach ist. Bei ein paar hundert Mitgliedern funktioniert fast jedes Design. Aber ab einigen tausend Nutzern summieren sich kleine Fehler.

Hier ist, was ich nach dem Betrieb von Bots in echten großen Communities anders mache.

Sharding ist Pflicht

Discord verlangt bei vielen Servern Shards. Schon vor dieser Grenze macht es Sinn, den Bot logisch aufzuteilen: Restarts, Debugging und Failover werden deutlich einfacher. Ein einziger abstürzender Prozess legt alles lahm; ein Shard nur noch einen Teil.

Zielgerichtet cachen

Alle Server und Mitglieder zu cachen, klingt bequem, aber der Speicherbedarf explodiert. Ich cache nur, was der Bot wirklich braucht: Berechtigungen, konfigurierte Kanäle und bei Logging-Bots aktuelle Nachrichten. Alles andere wird on demand abgerufen.

Messen statt raten

Es ist verlockend, früh Redis, Message Queues und Microservices einzuführen. In den meisten Fällen reicht ein gut geschriebener Single-Process-Bot mit PostgreSQL für zehntausende Nutzer. Komplexität hinzufügen, wenn die Metriken es fordern, nicht vorher.

Fazit

Performance ist eine Gewohnheit, kein Feature. Die Entscheidungen, die du am ersten Tag triffst, bestimmen, wie schmerzhaft das Wachstum am Tag fünfhundert ist.