Les visualisations de données interactives nécessitent aussi une réflexion backend

Les gens louent la mauvaise couche des visualisations de données.

Ils remarquent les animations fluides et les cartes soignées. Ils ne remarquent pas le travail invisible qui rend ces visuels possibles. Ils ne voient pas les tâches d'ingestion qui nettoient les données désordonnées ou les stratégies de mise en cache qui maintiennent la rapidité de l'API.

Ce travail invisible est le véritable produit.

Si vous construisez des expériences gourmandes en données, le frontend n'est qu'un moteur de rendu. Le véritable défi d'ingénierie se situe en amont. Vous devez décider de la forme des données qui parviennent au navigateur et de la quantité qui arrive.

Si vous voulez que votre visualisation survive à un trafic réel, vous avez besoin d'une conception axée sur le backend (backend-first design). Sans cela, vous ne livrez qu'une démo avec une jolie couche d'animation sur un chemin instable.

De nombreuses piles technologiques (stacks) de visualisation échouent parce que l'API est trop proche du modèle de stockage. Le backend envoie des enregistrements bruts, et le frontend est contraint de nettoyer, d'agréger et de grouper les données. Cela semble rapide pendant le développement, mais cela devient coûteux en production car chaque utilisateur paie le prix du nettoyage des données.

Votre backend devrait fournir un modèle de lecture (playback model), et non un journal brut (raw log).

Lorsque le backend s'occupe du gros travail, tout s'améliore :

  • La charge CPU est déportée hors du navigateur.
  • Le comportement devient facile à tester.
  • La capacité de mise en cache s'améliore.
  • Le système devient prévisible.

Une visualisation est un consommateur spécialisé. Elle a besoin d'un accès rapide et de charges utiles (payloads) légères. Ne la forcez pas à utiliser la même API qu'un tableau de bord d'administration ou qu'un export de données. Donnez-lui un contrat backend dédié.

Un pipeline professionnel devrait accomplir cinq choses :

  • Valider les enregistrements sources pour rejeter les données erronées.
  • Normaliser les structures comme les fuseaux horaires et les unités.
  • Dériver des segments de lecture plutôt que des lignes brutes.
  • Créer plusieurs résolutions pour différents niveaux de zoom.
  • Horodater les révisions pour éviter le mélange de données obsolètes.

Arrêtez de traiter la taille de la charge utile comme un problème de frontend. C'est un problème de contrat d'API. Si votre serveur envoie trop de données, l'interaction ne paraîtra jamais rapide.

Une API robuste envoie la vue la plus petite et la plus fidèle possible. Elle limite les requêtes par temps, par région et par niveau de détail.

Construisez votre système en anneaux :

  • Le premier anneau fournit l'orientation grâce à une vue d'ensemble.
  • Le deuxième anneau permet l'interaction pour le balayage (scrubbing) et le zoom.
  • Le troisième anneau permet l'inspection pour les détails approfondis des entités.

Ne vous contentez pas de suivre le temps de disponibilité (uptime). Suivez la taille des charges utiles, les taux de réussite de la mise en cache (cache hit rates) et la fraîcheur des données. Plus important encore, validez que vos artefacts traités correspondent toujours à la réalité.

Une visualisation dérivée est un produit de données. Elle nécessite une validation, pas seulement un rendu.

Construisez votre backend comme si le frontend était un client de lecture pour un produit de données versionné. C'est ainsi que l'on construit des systèmes qui tiennent la route après le lancement.

Source : https://dev.to/saqueib/interactive-data-visualizations-need-backend-thinking-too-5bk0