Démarrer
Démarrer
Vue d'ensemble du système
La vue à 10 000 pieds d'ItsBagelBot : acteurs, frontières et systèmes avec lesquels il communique.
Sur cette page
ItsBagelBot est un bot Twitch hautement disponible et entièrement évolutif, qui s’étend à de nouveaux services en ajoutant les workers d’ingress appropriés. Les streamers multi-plateformes peuvent ainsi être pilotés depuis une seule configuration.
Nous gardons l’empreinte de chaque service réduite afin de limiter le coût matériel et énergétique du système.
Cette page présente la vue C4 niveau 1 (contexte système). Elle masque volontairement l’intérieur du bot et montre uniquement les acteurs qui interagissent avec lui et les systèmes externes dont il dépend. Pour voir l’intérieur de la boîte, consultez les microservices →. Pour sa forme en fonctionnement (plan de données, bus et flux des requêtes), consultez l’état du système →.
Diagramme de contexte
flowchart TB
Broadcaster["Broadcaster / chatter<br/><i>Utilisateur Twitch</i>"]
Operator["Opérateur<br/><i>appareil tailnet</i>"]
subgraph Bagel ["ItsBagelBot"]
Core["Système du bot<br/><i>microservices sur NATS</i>"]
end
Twitch["Twitch<br/><i>EventSub + API Helix</i>"]
Discord["Discord<br/><i>passerelle + API REST</i>"]
Tebex["Tebex<br/><i>achats / monétisation</i>"]
Providers["Fournisseurs d'API externes<br/><i>via Gossip</i>"]
NewRelic["New Relic<br/><i>observabilité</i>"]
Broadcaster -- "utilise la console<br/>(OAuth, réglages)" --> Core
Operator -- "console admin / kubectl<br/>(tailnet uniquement)" --> Core
Twitch -- "événements EventSub" --> Core
Core -- "chat + gestion EventSub" --> Twitch
Discord -- "événements de la passerelle" --> Core
Core -- "actions REST" --> Discord
Tebex -- "webhooks d'achat" --> Core
Core -- "recherches typées" --> Providers
Core -- "télémétrie" --> NewRelic
Acteurs et systèmes externes
| Partie | Relation |
|---|---|
| Broadcaster / chatter | Pilote le bot via le chat Twitch et EventSub ; le configure via la console (OAuth Twitch avec oauth4webapi). |
| Opérateur | Exploite le bot. Accède à la console admin et à kubectl uniquement via le tailnet Tailscale ; aucun chemin public. |
| Twitch | Source des événements EventSub (ingress) et cible des messages de chat et de la gestion EventSub (outgress), via l’API Helix et le jeton du compte du bot. |
| Discord | Source des événements de la passerelle (ingress Discord) et cible des actions REST (outgress Discord). |
| Fournisseurs d’API externes | Sources de données tierces, comme des statistiques de jeux et des services musicaux. Seul Gossip les appelle, avec des identifiants résolus au moment de la requête. |
| Tebex | Monétisation. Les achats alimentent le service transactions et font passer le niveau d’un broadcaster en payant. |
| New Relic | Destination d’observabilité pour les services Go et Elixir. |
La surface publique du bot comprend la console du broadcaster et ses pages publiques (commandes, statistiques, classements), les points d’état et le récepteur de webhooks Tebex, tous servis par le tunnel cloudflared sortant. Tout ce qui concerne l’opérateur est limité au tailnet. À l’intérieur de la boîte, les services communiquent exclusivement sur NATS.