ZAF / ÉTUDE ILLUSTRATIVE

Des approbations fragmentées à une plateforme opérationnelle traçable

Une application de ZAF : état actuel, preuves manquantes, frontières, décisions et plan de vérification progressif.

Le besoin : rendre une décision approuvée traçable

Une institution fictive dispose d’un siège et de six antennes. Les demandes de dépenses circulent entre tableurs, emails et application existante. La finance rapproche des exports pour produire un rapport. Le besoin est de savoir quelle demande a été approuvée, par qui, sur quelle version et avec quelles données. Le premier choix porte sur l’autorité de la décision et non sur un fournisseur cloud.

ContrainteHypothèse de travailPreuve à obtenir
Échelle et équipe120 utilisateurs, 20 simultanés, deux ingénieursListe des accès, charge représentative et capacité de support
ConnectivitéCoupures de plusieurs heures possiblesHistorique des incidents, équipements et alimentation
DonnéesContrôle institutionnel des données sensiblesClassification, hébergement autorisé et conservation
RepriseRPO envisagé : 24 h ; RTO : 4 hAnalyse d’impact et restauration chronométrée
ReportingRapport quotidien à 09 h, heure d’Afrique centraleDéfinitions et rapprochement validés par le responsable

01 / État actuel

Le parcours choisi est demande → revue du service → approbation financière → exécution → rapprochement. Dans ce scénario construit, les antennes attribuent des références différentes, les emails servent de preuve et les exports n’ont pas le même instant de référence. Un tableur corrigé peut remplacer la version effectivement approuvée. Ces constats ne décrivent aucune institution réelle.

02 / Évaluation

Une mission examinerait des demandes acceptées et refusées, testerait les droits et rapprocherait un rapport de ses transactions sources. Un entretien explique la pratique prévue ; les enregistrements et les tests permettent d’examiner la pratique réelle. La restauration doit être démontrée. Les inconnues restent explicites.

  • Responsable métier : confirmer le circuit et l’autorité des exceptions.
  • Finance : approuver les définitions, la période et les règles de rapprochement.
  • Responsable système : démontrer les accès, les versions et la reprise.
  • Responsable des données : valider classification, destinations et conservation.

03 / Écarts prioritaires

PrioritéÉcart du scénarioRisqueVérification
P1Version approuvée non identifiéeExécution différente de l’autorisationModifier une demande puis rejouer son circuit
P1Restauration non démontréeReprise trop lente ou incomplèteRestaurer une copie isolée et rapprocher les données
P2Définitions et périodes incompatiblesRapports non comparablesVérifier une période connue
P2Reprises sans dédoublonnageCréation de demandes en doubleRépéter une commande après délai dépassé

04 / Principes

  • Un responsable et une source faisant autorité pour chaque fait métier.
  • Les autorisations et transitions sont vérifiées côté serveur.
  • L’approbation porte sur une version identifiée de la demande.
  • Une nouvelle tentative ne crée pas une deuxième opération métier.
  • La conservation et l’hébergement suivent une politique approuvée.
  • La complexité doit correspondre à la capacité réelle d’exploitation.

05 / Architecture recommandée

Démarrer avec une application modulaire et une base relationnelle. Séparer les responsabilités de workflow, d’autorisation et de reporting tout en conservant une frontière transactionnelle cohérente. Ce choix répond à l’équipe et à la charge supposées ; il ne constitue pas une règle générale contre les microservices.

Frontières et flux proposésLe navigateur transmet à l’API qui valide une transaction PostgreSQL. Le worker lit la boîte d’envoi et traite notifications et reporting. Schéma logique simplifié : identité, pièces jointes et sauvegardes sont hors du dessin.NavigateurBrouillons non transmisAPI applicativeDroits et versionsPostgreSQLÉtat · audit · outboxNotificationsEffets différésWorkerReprises et dédoublonnageReportingProjections et fraîcheur
Le navigateur transmet à l’API qui valide une transaction PostgreSQL. Le worker lit la boîte d’envoi et traite notifications et reporting. Schéma logique simplifié : identité, pièces jointes et sauvegardes sont hors du dessin.

L’API authentifie la commande et vérifie droits et version attendue. Une transaction enregistre la transition, la trace d’audit et l’événement de boîte d’envoi. Un worker traite les notifications et les projections de reporting. L’échec d’un email n’annule pas une approbation déjà validée. Les consommateurs tolèrent les doublons ; la boîte d’envoi ne garantit pas à elle seule un traitement unique de bout en bout.

Décision et effets différésUne commande valide est enregistrée atomiquement ; une commande non autorisée ou périmée est refusée. Les notifications sont traitées après validation et peuvent être reprises.CommandeActeur · clé · versionContrôle serveurDroits · état · versionValidation atomiqueDécision · audit · outboxRefus expliciteAucun changement métierTraitement différéReprises idempotentes
Une commande valide est enregistrée atomiquement ; une commande non autorisée ou périmée est refusée. Les notifications sont traitées après validation et peuvent être reprises.

Un historique auditable n’est pas automatiquement inviolable. Les privilèges administratifs, la conservation et la protection des sauvegardes doivent être conçus. Le stockage des pièces jointes, l’identité et les sauvegardes sont des frontières supplémentaires omises de ce schéma simplifié.

La connectivité impose une règle de cohérence

La première phase conserve un brouillon local clairement marqué comme non transmis. Aucune approbation ou exécution hors connexion n’est définitive. Au retour du réseau, le client utilise un identifiant stable de commande et une version attendue. Une version périmée impose une nouvelle revue. Une réponse perdue est rapprochée par l’identifiant de commande. Une approbation finale hors connexion exigerait une politique de conflit et de délégation explicite.

06 / Choix technologiques

CapacitéOption envisagéeObligation associée
Workflow et APIBackend modulaire ; langage choisi avec les mainteneursFrontières métier, tests des droits et migrations
État transactionnelPostgreSQLContraintes, concurrence et restauration vérifiées
Traitements différésBoîte d’envoi et workerReprises, dédoublonnage et échecs visibles
Pièces jointesStockage protégé sous contrôle institutionnelAccès, limites, conservation et sauvegarde
DéploiementConteneurs versionnés sur infrastructure autoriséeCorrectifs, secrets, retour arrière et responsabilités
ReportingProjections et rapprochements versionnésPériode, couverture des sources et anomalies visibles

07 / Décisions et compromis

DécisionOption écartéeCoût acceptéCondition de révision
ADR-001 : application modulaireMicroservices indépendantsCycle de livraison communÉquipes distinctes ou besoin d’isolation mesuré
ADR-002 : notifications différéesEnvoi pendant la transactionDélai et exploitation d’un workerExigence de livraison plus stricte démontrée
ADR-003 : brouillons hors connexionApprobation finale hors connexionValidation impossible pendant la coupurePolitique de conflits et délégation approuvée
ADR-004 : reporting quotidienAnalyse en streamingRetard d’un cycleDécision nécessitant des données plus fraîches

Kafka, Kubernetes et un entrepôt séparé ne sont pas des exigences initiales dans cet exemple. Leur coût d’exploitation doit répondre à un besoin mesuré de débit, d’isolation, de livraison indépendante ou d’historisation.

08 / Vérification et progression

PhaseLivrablePreuve de sortie
DécouverteCartographie, échantillon et exigencesDéfinitions et responsables validés
ConceptionSchémas, modèle et décisionsParcours normal, refusé et interrompu examinés
PiloteUne antenne et un type de demandeDroits, concurrence, reprises et rapprochements vérifiés
RepriseExercice de restaurationDurée et complétude conformes aux objectifs approuvés
ExtensionDéploiement progressif et transfertSupport, exceptions et fraîcheur démontrés

Trois scénarios vérifient les promesses : répéter une commande après un délai dépassé sans créer de doublon ; refuser une approbation sur une ancienne version ; arrêter le worker puis vérifier la reprise des notifications après une approbation valide. Ces scénarios vérifient le comportement plutôt que la seule présence des composants.

09 / Synthèse de décision

L’investissement proposé vise un circuit d’approbation faisant autorité et un reporting explicable. L’hébergement, la conservation, la continuité des antennes et les objectifs de reprise restent à arbitrer par l’institution. Aucune économie, réduction de fraude ou disponibilité n’est annoncée sans mesure initiale et pilote.

Références techniques

Appliquer cette démarche à votre contexte

La première mission examine un parcours, ses données et ses risques, puis fournit une cartographie et des recommandations priorisées. Le périmètre et les honoraires sont convenus avant le démarrage.

Discuter d’une revue ↗