Skip to content
StableAudienceDevSécuritéAudit banqueOwner@architecture-teamDernière revue2026-05-21

Architecture Decision Records (ADRs)

Les ADRs capturent les décisions structurantes prises sur la plateforme Nex : contexte, options envisagées, décision retenue, conséquences. Format inspiré de Michael Nygard.

Pourquoi des ADRs

  • Onboarding — un nouveau dev comprend pourquoi les choix actuels en quelques lectures.
  • Audit — un auditeur bancaire ou cybersec voit la gouvernance architecturale, pas seulement le code.
  • Mémoire d’équipe — éviter de redébattre une décision déjà prise et oubliée.
  • Évolution maîtrisée — un ADR superseded documente explicitement le changement.

Table de référence

#TitreStatusDateTickets
0001NestJS en Clean Architecture pour tous les servicesAccepted2026-02
0002Firebase comme provider de custom tokensAccepted2026-02
0003Monorepo Turborepo + pnpm, mobile en npm hors workspaceAccepted2026-02
0004Modèle multi-utilisateurs marchand via merchant_membersAccepted2026-04NEX-500
0005Card number marchand 8 caractères avec préfixe envAccepted2026-04NEX-500
0006Intent comme représentation canonique d’une transactionAccepted2026-04NEX-438
0007Pas de prefetched policy — trust boundary risk-engineAccepted2026-05-09NEX-438
0008Doppler + External Secrets Operator pour les secretsAccepted2026-03
0009AWS EKS comme runtime staging et productionAccepted2026-03
0010Cloudflare edge, WAF, CDN et DNSAccepted2026-03
0011VitePress pour la documentation techniqueAccepted2026-04
0012Bus async BullMQ pour les notifications de transactionAccepted2026-05-09NEX-438
0013QR code AES-256-GCM avec device key par appareilAccepted2026-03
0014Schémas PostgreSQL séparés par microserviceAccepted2026-02
0015Architecture transaction-flow config-drivenAccepted2026-04NEX-438
0042Convention master_agent / simple_agent lowercaseAccepted2026-05-01NEX-435

Conventions de numérotation

  • Numérotation séquentielle à partir de 0001.
  • Les numéros déjà attribués (ex : 0042) restent stables — pas de renumérotation.
  • Une décision rendue obsolète passe en superseded mais n’est pas supprimée — elle référence l’ADR qui la remplace.

Format d’un ADR

markdown
---
title: "ADR-NNNN — Titre court de la décision"
audience: [dev, sec, audit-bank]
owner: "@architecture-team"
status: accepted | proposed | superseded
last_review: YYYY-MM-DD
related_tickets: [NEX-XXX]   # optionnel
---

# ADR-NNNN — Titre court

**Status :** Accepted | Proposed | Superseded
**Date :** YYYY-MM-DD
**Deciders :** équipe / personne
**Tickets :** NEX-XXX

## Contexte
Quel problème, quelles contraintes, quels acteurs.

## Décision
Ce qui a été retenu.

## Conséquences
### Positives
### Négatives / risques

## Alternatives écartées
Les options non retenues et pourquoi.

## Suivi
Tickets, MR, autres ADRs liés.

Quand écrire un ADR

Écrire un ADR quand :

  • la décision touche plus d’un service ou plus d’une équipe ;
  • la décision est difficile à inverser une fois prise ;
  • la décision implique un trade-off non évident ;
  • un nouvel arrivant aurait du mal à comprendre le « pourquoi » sans contexte.

Ne pas écrire d’ADR pour :

  • un choix de nommage local ;
  • une convention de code triviale ;
  • une décision déjà capturée dans une autre page d’architecture.

Nex — Plateforme fintech CEMAC