EventSub + Chat Integration. V3 hatte 21 Tabellen + 7 Router β V4 wird clean.
14 dokumentierte Issues aus der Code-Analyse
Jedes Event wird an 2 Channels gepublisht (Workflow Engine + Real-Time) mit unterschiedlichen Payload-Formaten. Doppelte Serialisierung, doppelte Logik.
Tokens in 3 verschiedenen Stellen: TwitchMonitoredChannel, TwitchCredentials, Web Service Cache. Refresh-Handling inkonsistent β kann 10+ Minuten offline sein.
Database β In-Memory Cache β Redis Events. Wenn Cache-Reload fehlschlΓ€gt, nutzt Bot stale Config ohne Warnung. Kein DB-Fallback wenn Cache leer.
17Γ der selbe try-catch BUGFIX in Event-Handlern. NachtrΓ€glich eingefΓΌgt, kein Error-Handling-Strategie. Fehler werden nur geloggt.
Bot sendet unbegrenzt Messages. Twitch rate-limitet still β gedropte Messages sind unsichtbar. Kein Backpressure.
Viel zu viele separate Tables. TwitchBotSetting Key-Value Anti-Pattern. TwitchCommandStats sollte in Command eingebaut sein.
Token-Refresh Failure β alle API Calls feilen still. Kein Alerting, keine Recovery-Strategie. Bot kann 10+ Minuten tot sein.
Jede Chat-Nachricht triggert einen frischen DB-Lookup. Bei 100+ Messages/Minute = 100+ Queries. Kein Cache, kein Batching.
Gleiche LΓΆsungen fΓΌr gleiche Probleme
Einheitliche Queue fΓΌr Commands an beide Bots. Retry, ACK, Dead Letter. Selbes System wie Discord.
Ein activityLog fΓΌr Discord + Twitch + System. Type-Enum unterscheidet die Source. Ein Ort fΓΌr alles.
Bot Events β Redis β WS Events β Panel. Live-Updates fΓΌr Stream Status, Chat Activity, Follows.
~40 Event Types β alle als Workflow Trigger verfΓΌgbar
Jedes dieser Events wird automatisch als Trigger in der Workflow Engine registriert. Der User entscheidet im Drag'n'Drop Editor was bei welchem Event passiert: Overlay zeigen, Chat-Nachricht senden, OBS Scene wechseln, Sound abspielen, etc.
Twitch-Bereich im Admin Panel
Live Status und aktuelle Statistiken
| Time | Type | User | Details |
|---|---|---|---|
| 19:23 | Sub | xXGamer42Xx | Tier 1 Β· 6 months |
| 19:21 | Bits | DankDonator | 500 Bits Β· "GG!" |
| 19:18 | Follow | NewViewer123 | New follower |
| 19:15 | Raid | FriendlyStreamer | 87 viewers |
Von 21 Tabellen auf 11. Shared Patterns mit Discord.
| V3 (21 Tabellen) | V4 (11 Tabellen) | Γnderung |
|---|---|---|
| TwitchMonitoredChannel (38 fields!) | twitchChannel (cleaned, settings as JSON) | Vereinfacht |
| TwitchBotSetting (key-value) | β twitchChannel.settings | Eliminiert |
| TwitchChannelBotSettings | β twitchChannel.botConfig | ZusammengefΓΌhrt |
| TwitchCredentials | β twitchChannel.tokens (encrypted JSON) | Vereinfacht |
| TwitchCommand + TwitchCommandStats + TwitchBotCommandUsage | β twitchCommand (stats inline) | 3β1 |
| TwitchTimerMessage | twitchTimer | Renamed |
| TwitchGiveaway | twitchGiveaway | Behalten |
| TwitchPoll + TwitchPrediction | Behalten (Twitch API driven) | Behalten |
| TwitchRewardAction | twitchReward | Renamed |
| TwitchFollower + TwitchSubscriber | twitchFollower + twitchSubscriber | Behalten |
| TwitchUser + TwitchEmoteCache | β | Entfernt (Twitch API) |
| TwitchChatStats | β Aggregation Query | Denormalisiert |
| TwitchLog (27 fields) | β activityLog (shared) | Unified |
| TwitchBannedWord + TwitchLinkFilter | β twitchChannel.filters (JSON) | Vereinfacht |
GeklΓ€rt am 2026-03-18
Jeder Channel bekommt alle Features (Commands, Timers, Giveaways etc). Kein abgestuftes System β voller Funktionsumfang fΓΌr jeden verbundenen Channel.
Separater Bot Account bleibt. Chat-Nachrichten kommen von butler_jamie, nicht vom Streamer-Account. EventSub lΓ€uft ΓΌber den Broadcaster Token.
Twitch AutoMod reicht aus. Kein eigener Spam/Link/Caps Filter. Spart Entwicklungszeit β Twitch's natives System ist gut genug.
BTTV, FFZ, 7TV Emotes cachen und Usage tracken. Top Emotes Leaderboard, Trends ΓΌber Zeit. Cached ΓΌber API, Refresh periodisch.
Twitch Bot tracked nur Stream Status (online/offline/title/game). Recording wird von MediaMTX on-publish Hook gestartet β komplett unabhΓ€ngig vom Twitch Bot.
Historischer Viewer Count Graph (Polling alle 60s). Plus: welche User waren wann im Stream (Chatters API). Session-basiert pro Stream fΓΌr Retention-Analyse.
~40 Event Types. Alle werden als Workflow Trigger registriert. Title + Game Changes als eigene Events geloggt. Maximale FlexibilitΓ€t fΓΌr Automations.