In progress GHub Urheber und Maintainer Open core 2026

DAnalytics

Discord-Analytik, gespeichert nach Form.

PostgreSQL für die relationale Seite, TimescaleDB für die Zeitreihen, Grafana-artige Boards darüber. Das eine Produkt, das aus dem Namensschema fällt.

Was es ist

Analytik für Discord-Server, selbst betreibbar, und datenschutzfreundlich durch Bauweise statt durch Zusicherung.

Es ist das eine Produkt, das aus dem Namensschema fällt. Alles andere in der Reihe beginnt mit G.

Gespeichert nach Form

Die nennenswerte Entwurfsentscheidung ist, dass Daten dorthin gehen, wo ihre Form hingehört.

PostgreSQL hält die relationale Seite. TimescaleDB hält die Zeitreihen, denn Nachrichten- und Sprachaktivität sind Zeitreihendaten, und sie in gewöhnlichen Tabellen zu halten heißt, für diesen Fehler bei jeder Abfrage zu zahlen. Grafana-artige Boards sitzen darüber.

Aufgeschrieben klingt das offensichtlich. Es ist nicht, was die meisten Analysewerkzeuge tun, und es ist der Grund, warum dieses hier Fragen über ein Jahr Aktivität beantworten kann, ohne dass ein geplanter Rollup-Job einen still anlügt.

Wie es zusammenhängt

Drei Prozesse mit einer strengen Regel dazwischen.

Ein discord.js-Bot nimmt Gateway-Ereignisse unter einem Sharding-Manager auf. Er prüft jede Nutzlast und stellt sie in die Warteschlange. Der Bot schreibt nichts direkt in die Datenbank.

Ein Worker leert diese Warteschlangen, führt die PII-Pipeline aus und schreibt gebündelt. Die Worker besitzen die Datenbank.

Ein Next.js-Dashboard liefert die Oberfläche über tRPC und REST, mit Live-Aktualisierungen über WebSockets auf demselben Port wie die Anwendung selbst.

Den Bot aus der Datenbank herauszuhalten ist das, was die Aufnahmeseite überlebensfähig macht. Ein Gateway-Client ist dem Ereignisaufkommen anderer Leute ausgeliefert. Hielte er zusätzlich Datenbankverbindungen, würde ein betriebsamer Tag das Lager mitreißen.

Datenschutz

Zwischen Aufnahme und Speicherung liegt eine eigene PII-Pipeline mit getrennten Schlüsseln. Feingranulare Zugriffskontrolle liegt über den Dashboards und nicht bloß über der Anmeldung.

Analytik über eine Gemeinschaft ist Analytik über Menschen. Der selbst-betreibbare Teil und der Datenschutzteil sind dieselbe Entscheidung.

Betrieb

Drei Auslieferungswege, geordnet danach, wie viel Infrastruktur Sie besitzen wollen: ein verwaltetes PaaS-artiges Deployment über Nixpacks, entweder als Ganzes oder in drei Dienste geteilt; docker-compose hinter Ihrem eigenen Reverse Proxy; oder schlicht Node gegen ein PostgreSQL mit TimescaleDB und ein Redis.

PgBouncer sitzt vor PostgreSQL. Dashboards werden als Code bereitgestellt.

Status

Gebaut und lauffähig. Derzeit nicht vorn in der Reihe — das sind GControl und GPlatform.