↑↓ auswählen · ENTER öffnen · ESC schließen

AutomatisierungIntegrationen

Tech Radar: Signale aus dem Feed einer Entwickler-Community filtern

Worum es ging
Mein eigener Service: Er sammelt Nachrichten aus einer Fach-Community, filtert das Rauschen mit erklärbaren Regeln und stellt einen Digest zusammen. Läuft auf meinem Server.
Meine Rolle
Konzeption, Architektur, Entwicklung, Betrieb – allein
Zeitraum
2026, laufend
Ergebnis
7.627 Nachrichten von 581 Autoren archiviert; der Service läuft unbeaufsichtigt.

Kontext und Ausgangsproblem

Eine Entwickler-Community, die über neue Bibliotheken, Tools und API-Preise diskutiert. Der Nutzen ist real, verteilt sich aber auf Hunderte Nachrichten pro Tag, und alles von Hand zu lesen ist keine Option.

Geschäftliche Aufgabe

Nichts Nützliches verpassen, ohne alles zu lesen. Statt eines Feeds eine kurze tägliche Zusammenfassung erhalten – und erklären können, warum eine Nachricht ausgewählt wurde.

Einschränkungen und Unbekannte

  • Ein Server, 2 CPU / 4 GB, keine GPU
  • Die Nachrichten stammen von anderen: Das Archiv bleibt privat, nach außen gehen nur Links und Ausschnitte
  • Es muss unbeaufsichtigt laufen – ich bin mit anderer Arbeit beschäftigt
  • Keine kostenpflichtige API

Meine Verantwortung

Alles: Erfassung über Telethon, Datenbankschema, Auswahlregeln, Digest, die systemd-Unit, Tests und Betrieb.

Schlüsselentscheidungen und Kompromisse

  • Das Rohdatenarchiv ist unantastbar: Die Verarbeitung löscht nie etwas aus items, und jede abgeleitete Bewertung liegt separat in item_analysis. Regeln lassen sich umschreiben und erneut über die gesamte Historie laufen lassen.
  • Zuerst deterministische Regeln, erst danach ein LLM. Regeln sind günstig, reproduzierbar und erklären sich selbst über eine Liste von Gründen; ein Modell auf zwei Kernen ohne GPU ist langsam und kann das nicht.
  • Das LLM sitzt hinter einer ItemAnalyzer-Schnittstelle statt im Verarbeitungscode. Ein lokales Modell hinzuzufügen bedeutet eine weitere Implementierung desselben Protokolls, keinen Umbau.
  • Inkrementelle Erfassung per Cursor: Ein Neustart liest die Historie nicht erneut ein.
  • Observability ab dem ersten Tag – jeder Lauf des Collectors wird mit seinem Status protokolliert, auch ein abnormaler Abbruch.

Was sich geändert hat

  • 7.627 Nachrichten von 581 Autoren, gesammelt zwischen März und August 2026
  • Deduplizierung anhand von normalisiertem Text und kanonisierten Links, Tracking-Parameter werden entfernt
  • Der Digest liefert einen Score, eine Kategorie und die Liste der Gründe, warum eine Nachricht ausgewählt wurde
  • Der Service läuft unter systemd und übersteht einen Server-Neustart ohne manuellen Eingriff
  • 1.148 Zeilen eigenen Codes, vier externe Abhängigkeiten, drei Test-Suites

Grenzen der Offenlegung und der Ergebnisse

Nächster Schritt bei einer ähnlichen Aufgabe

Eine ähnliche Aufgabe: Signale aus einem Strom von Nachrichten, E-Mails oder eingehenden Anfragen herausfiltern. Wir würden damit beginnen festzulegen, was als Signal zählt.

Kontakt aufnehmen

Möchten Sie ein Projekt besprechen?

Beginnen Sie mit ScopeMap oder beschreiben Sie, was heute passiert und was stattdessen passieren soll. Ich schlage einen sicheren ersten Schritt vor.