Aller au contenu principal

Architecture Decision Records (ADRs)

"Chaque outil à sa fonction" — Pas de solution universelle

Ce répertoire contient les décisions architecturales importantes pour la Plateforme STOA.


📚 Index des ADRs

🏛️ Architecture Fondamentale

#TitreStatut
003Architecture Monorepo — Polyglotte Multi-Services
004Patron Adaptateur de Gateway — Orchestration Multi-Gateway
005Architecture Event-Driven — Conception des Topics Kafka
006Architecture du Registre d'Outils — Conception en 7 Modules

⚡ Performance & Fiabilité

#TitreStatut
008Cache Sémantique des Réponses — Stratégie pgvector
009Instantanés d'Erreurs — Débogage Voyage dans le Temps

🏗️ Plateforme & Infrastructure

#TitreStatut
001Stratégie d'Exposition API Tierces — Façade API Publique
002Conception du CLI stoactl📋
007GitOps avec Argo CD
025Résilience du Gateway — Patron Anti-Nœud Zombie📋
026Patron de Fédération Multi-IAM — Zéro Stockage Utilisateur

🔐 Sécurité & Conformité

#TitreStatut
011Sélection du Mode de Sécurité API — mTLS / OAuth2 / Hybride
018Durcissement Sécurité P0 — Pentest Team Coca

🤖 MCP & Gateway IA

#TitreStatut
012Architecture des Outils MCP — RBAC & Gouvernance Multi-Tenant
020Gouvernance des Données en Temps Réel
021Observabilité Pilotée par l'UAC📋
022Architecture Tenant de l'UAC
023Observabilité Sans Angle Mort
024Architecture Gateway Unifiée — 4 Modes de Déploiement

💼 Modèle d'Affaires & Stratégie

#TitreStatut
019Modèle d'Affaires & Stratégie de Différenciation
041Architecture de Plugins — Cœur Communautaire vs Extensions Entreprise

🛠️ Expérience Développeur & Workflow IA

#TitreStatut
030Architecture de Gestion de Contexte AI-Native
031Architecture de Workflows CI/CD Réutilisables
032Transformation des Réponses — Adaptateurs Pluggables

🎨 Frontend & UX

#TitreStatut
033Composants UI Partagés — Abstraction de Thème

🦀 Évolution

#TitreStatut
034Stratégie de Migration Python vers Rust

🌐 Gateway & Déploiement

#TitreStatut
035Patron Adaptateur de Gateway — Orchestration Multi-Gateway
036Auto-Enregistrement du Gateway — Intégration Zéro Configuration
037Modes de Déploiement — Stratégie Souveraineté en Premier

🔮 ADRs Planifiés

#TitrePriorité
010Décision Blockchain — Euro Numérique 2027+🔵
013Patterns Idempotence & Saga — Exactly-Once pour le B2B🟡
014Garde-fous de Livraison — Canary & Gel SLO Automatique🟡
015Tokens à Contrainte d'Expéditeur — Liaison mTLS, DPoP & DCR🟡
016Ingénierie des Versions — Workflow Git & Versionnement🟢
017Kafka/Redpanda Interne Uniquement — Zéro Exposition Externe🟡

Légende : ✅ Accepté · 📋 Brouillon · 🟢 Haute · 🟡 Moyenne · 🔵 Basse

Aperçu des Choix Technologiques

CatégorieChoix STOAAlternativesJustification
MessagerieKafka (Redpanda)RabbitMQ, NATSEvent sourcing, replay, montée en charge
Base de donnéesPostgreSQLMySQL, MongoDBACID, JSON, extensions
AuthKeycloakAuth0, OktaAuto-hébergé, OIDC complet
ObservabilitéPrometheus + Grafana + LokiDatadog, ELKOpen source, natif K8s
GitOpsArgoCDFlux, JenkinsUI, multi-cluster
AutomatisationArgoCD + Adaptateurs GatewayTerraformIdempotent, auditable
Gateway v1webMethodsKong, APISIXExpertise legacy
Gateway v2Rust + eBPFGo, C++Performance, sécurité
RechercheOpenSearchElasticsearchApache 2.0, sans AWS

Principes Directeurs

PrincipeApplication
Open Source d'abordÉviter le lock-in, contribuer en amont
Natif K8sOpérateurs, CRDs, GitOps
Le bon outil pour le bon usageKafka pour les événements, PostgreSQL pour l'ACID
Auto-hébergement possibleAucune dépendance SaaS obligatoire
Licence permissiveApache 2.0, MIT — éviter GPL, SSPL
Cloud-agnostiqueAucun service managé obligatoire

Template ADR

Utilisez le template ci-dessous pour créer de nouveaux ADRs.

# ADR-XXX: [Titre]

## Métadonnées
| Champ | Valeur |
|-------|-------|
| **Statut** | 📋 Brouillon / ✅ Accepté / ❌ Rejeté / 🔄 Remplacé |
| **Date** | YYYY-MM-DD |
| **Linear** | [CAB-XXX](lien) |

## Contexte
[Pourquoi cette décision est-elle nécessaire ?]

## Décision
[Qu'a-t-on décidé ?]

## Conséquences
### Positives
### Négatives
### Atténuations

## Références