Modélisation · Architecture technique

Architecture technique

Briques applicatives et outillage retenus · télécharger le SVG

Architecture technique du SI FGA Briques applicatives et outillage retenus · socle Java / Quarkus pour les lots métier · Odoo pour l'ERP · déclinaison de l'architecture cible OIDC JSON-RPC / REST Odoo connecteurs source / sink télémétrie OTLP OTLP Frontaux · React + TypeScript (Vite), design system commun Services métier · Java / Quarkus · REST (OpenAPI) + événements (SmallRye Reactive Messaging) ERP · Odoo, jamais de modification du core Données et pilotage Services transverses (produits) Décisions à acter avant développement Variante allégée (équipe réduite) Observabilité · OpenTelemetry · chaque brique développée ou opérée émet vers le collecteur : frontaux, Traefik, services Quarkus, adaptateur ERP, Kafka, Odoo, bases, transverses Chaîne d'ingénierie et exécution · du commit au déploiement, identique pour les six lots Portail e-services React · TypeScript · Vite exposition publique derrière WAF Back-offices métier PR1, PR2, PR3, recouvrement même socle React, thème interne Application terrain (PWA) Workbox · IndexedDB mode hors ligne, synchronisation Traefik (Ingress) · routage, quotas, journalisation · authentification OIDC via Keycloak Prise en charge Quarkus · Java LTS Gradle · config YAML Panache · Liquibase PostgreSQL dédié Indemnisation Quarkus · Java LTS moteur de calcul : règles versionnées, tests DJGS PostgreSQL dédié Production Quarkus · Java LTS imports ASACI (API / SFTP) contrôles d'assiette PostgreSQL dédié Recouvrement Quarkus · Java LTS échéanciers, relances, courriers PDF PostgreSQL dédié Adaptateur ERP Quarkus · même socle consomme / produit Kafka ↔ JSON-RPC / REST Odoo base minimale : rejeu + mapping tiers Apache Kafka · dorsale d'événements, rejeu · Schema Registry (Avro) · topics par domaine Sage transition à acter Odoo édition et version à trancher (Community / Enterprise) modules custom par héritage · conventions OCA PostgreSQL (base Odoo) Kafka Connect + Debezium CDC des bases PostgreSQL, déversement vers l'entrepôt PostgreSQL entrepôt modèle en étoile, alimenté par flux, jamais de lecture des bases métier Power BI Keycloak OIDC · MFA realm agents : fédération Entra ID realm usagers : victimes, prestataires SharePoint O365 GED · accès par API Microsoft Graph plans de classement par lot SAE à valeur probante exigence des CDC, solution à instruire Signature électronique PSC accrédité ARTCI, candidat à instruire Notifications agrégateur SMS local (contrat à part) email : SMTP M365 Redis cache applicatif · verrous distribués rate limiting Traefik · files légères · hébergement cible : on-premise FGA ou cloud · édition et version d'Odoo, licences · sort de Sage : remplacement ou interface · solution SAE, prestataire de signature (ARTCI) · agrégateur SMS, contrats opérateurs · front confirmé après audit équipe (React par défaut) · dimensionnement : volumétrie absente des CDC Si l'équipe d'exploitation est réduite : · Docker Compose par environnement, Kubernetes en cible différée · Kafka KRaft acté (ADR-0006) : un seul système, sans ZooKeeper — pas de variante Collecteur OpenTelemetry réception OTLP · instrumentation native Quarkus, agents ailleurs stockage télémétrie Prometheus métriques Loki logs centralisés Tempo traces distribuées Grafana tableaux de bord, alerting, suivi des SLA (délai 60 j) alertes exploitables → email, SMS (brique Notifications) GitHub · Actions dépôts Git, pull requests pipelines CI/CD SonarQube qualité de code, couverture, dette Nexus artefacts Maven / npm, registre d'images Tests automatisés JUnit 5 · Testcontainers · REST Assured Playwright (front) · k6 (charge) Helm + ArgoCD paquets versionnés, déploiement GitOps Kubernetes conteneurs Docker, environnements dev · recette · prod Ansible provisioning des VM (Odoo, bases, broker) « rien ne se perd, tout se rejoue » « le core reste intact » « pas mesuré, pas en prod » « du commit à la prod » Conventions de développement : projets Java construits avec Gradle, configuration applicative en YAML · aucun développement dans le core Odoo, héritage de modules uniquement. Les versions des produits tiers (Odoo, Sage, Traefik, Keycloak, Kafka, PostgreSQL…) seront arrêtées au démarrage et figées dans le DAT, pas dans ce schéma.