Architecture

Architecture de StillDeep : serveur, postes et écrans

Un serveur par commerce, des postes qui vendent hors ligne, un contrat gRPC pour chaque écran : comment StillDeep est bâti, ce qui est livré ou en cours.

Trois couches qui ne se mélangent jamais : le serveur du commerce, le moteur du poste et l'écran. Les règles d'affaires vivent dans des bibliothèques ; les services ne font que les héberger.

Le serveur du commerce

Chaque commerce fait tourner un serveur sur son réseau local :

  • ServerDB : une base PostgreSQL 19, seule source de vérité.
  • Server.Service : la passerelle gRPC des postes. Les postes ne se connectent jamais à la base : chaque opération passe par ce proxy, qui la vérifie et l'enregistre.
  • Admin : l'application web de configuration, sur le réseau local.
  • Rapports : l'application web des rapports, sur le réseau local et, au choix, sur Internet.

Internet ne sert qu'à la synchronisation infonuagique optionnelle, aux paiements par carte (du terminal directement au processeur) et aux mises à jour.

Le poste

Un poste est un conteneur (ou un programme natif) qui regroupe :

  • L'écran : tout client, dans tout langage, qui parle gRPC sur le poste lui-même.
  • Intelligence : le moteur de vente, les modules d'affaires et les extensions.
  • Communication : la copie SQLite locale, la file d'envoi et la synchronisation avec le serveur.

Sur un poste Windows qui pilote une imprimante thermique ou un tiroir-caisse, le programme peut lier les bibliothèques en direct : un seul processus, aucun saut réseau local, les mêmes règles.

Hors ligne d'abord

Au démarrage, un poste vide sa file d'envoi vers le serveur avant toute autre chose : une mise à jour n'écrase jamais des ventes non envoyées. Quand le serveur est injoignable, le poste vend depuis sa copie locale. Certaines vérifications exigent le serveur : le stock et les places limitées ne sont garantis qu'en ligne.

Le contrat

Les écrans utilisent le contrat gRPC stilldeep.v1 : ventes, catalogue, membres, cartes, périphériques, événements, reçus, réservations, rendez-vous, location, inventaire, quarts et plus. La version 1 ne reçoit jamais de changement incompatible ; une version 2 vivrait dans son propre espace de noms. Les montants sont en cents entiers, les pourcentages en points de base, les quantités en millièmes.

Technologies

.NET 11 et C#, PostgreSQL 19, SQLite, Blazor pour les applications web, gRPC sur HTTP/2, MCP pour les outils de l'IA, OpenTelemetry pour les journaux, métriques et traces. Chaque composant tourne sous Windows, Linux et macOS et suit les règles des douze facteurs (configuration par l'environnement, journaux sur la sortie standard, vérifications de santé, arrêt propre).

Livré et en cours

Domaine État
Base de données, moteur de vente, synchronisation et file d'envoi Livré
Proxy de la base pour les postes Livré ; durcissement TLS et enrôlement réel en cours
Contrat gRPC et clients exemples Livré
Applications web Admin et Rapports Livré
Reçus, impression, concepteur de reçus, codes hors ligne signés Livré
Extensions et registre des extensions Livré ; signature des paquets en cours
Réservations, rendez-vous, location, ressources limitées Livré
StillDeep AI (locale) Livré
Cryptographie post-quantique hybride En cours
Emballage Docker et mises à jour automatiques Prévu
Licence par poste, modules restaurant et bar Prévu

StillDeep en est à la version 0 : aucun client n'est encore déployé.