Approches architecturales

Base de données + protocole temps réel — choisir une approche

A

SQLite + SSE

SQLite — fichier unique, pas de conteneur supplémentaire, SQL classique.
Server-Sent Events — flux unidirectionnel serveur→browser, plus simple que WebSocket.

Avantages

  • Zéro dépendance supplémentaire
  • Déploiement ultra-simple
  • SSE natif dans les browsers modernes

Limites

  • Performances sur gros volumes de séries temporelles
  • SSE unidirectionnel (pas d'envoi de commandes futures)
B

InfluxDB + WebSocket

InfluxDB — time-series DB optimisée, requêtes temporelles puissantes.
WebSocket — bidirectionnel, extensible pour des commandes futures vers les agents.

Avantages

  • Optimisé pour les métriques temporelles
  • WebSocket = extensible (alertes, commandes)
  • Grafana compatible nativement

Limites

  • Conteneur InfluxDB supplémentaire dans le compose
  • Courbe d'apprentissage Flux/InfluxQL
C

SQLite + WebSocket ⭐ Recommandé

SQLite — simplicité opérationnelle, suffisant pour 20+ agents avec rétention configurable.
WebSocket — bidirectionnel dès le départ, sans surcoût opérationnel.

Avantages

  • Pas de conteneur DB supplémentaire
  • WebSocket prêt pour extensions futures
  • Simple à debugger et sauvegarder

Limites

  • Requêtes temporelles moins expressives qu'InfluxDB
  • Scalabilité limitée au-delà de ~100 agents