Files
roadwave/docs/adr/016-service-emailing.md
jpgiannetti 852f6d5e16 refactor(docs): réorganiser ADR et règles métier pour clarté
**Changements majeurs** :

1. **Suppression ADR-010 (Commandes volant et likes)** :
   - Contenu consolidé dans Règle 05 (section 5.3)
   - Raison : ADR-010 était du métier déguisé en architecture
   - Section "Implémentation Technique" ajoutée à Règle 05
   - Pattern correct (addition) vs incorrect (multiplication)

2. **Déplacement ADR-011 → Compliance** :
   - `docs/adr/011-conformite-stores.md` → `docs/compliance/stores-submission.md`
   - Raison : Nature opérationnelle/légale, pas architecture technique
   - Nouveau dossier `/docs/compliance/` créé

3. **Renumérotation ADR (010-022)** :
   - Combler les trous de numérotation (010 et 011)
   - ADR-012→010, ADR-013→011, ..., ADR-024→022
   - 22 ADR numérotés en continu (001-022)
   - Historique Git préservé (git mv)

4. **Mise à jour références** :
   - Règle 03 : ADR-010 → Règle 05 (section 5.3)
   - Règle 09 : ADR-010 → Règle 05 (section 5.3)
   - INCONSISTENCIES-ANALYSIS.md : toutes références mises à jour
   - Incohérence #15 annulée (faux problème : modes séparés)

**Résultat** :
-  Séparation claire ADR (technique) vs Règles métier (fonctionnel)
-  Documentation compliance séparée
-  Numérotation ADR continue sans trous
-  Single Source of Truth (pas de redondance)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-01 14:34:12 +01:00

3.4 KiB

ADR-016 : Service d'Emailing Transactionnel

Statut : Accepté Date : 2026-01-26

Contexte

RoadWave nécessite un service d'envoi d'emails techniques uniquement (pas de notifications sociales, alertes marketing, promotions).

Périmètre strict :

  • Authentification : Vérification email (inscription), réinitialisation mot de passe, changement email
  • Sécurité : Alertes connexion inhabituelle, changement password
  • Modération : Strikes, suspensions, bannissements
  • RGPD : Confirmation suppression compte, export données
  • Pas de notifications sociales (écoutes, likes, commentaires, nouveaux abonnés)
  • Pas d'alertes marketing (nouvelles sorties, recommandations personnalisées)
  • Pas de newsletters/promotions

Justification : Gérer un service d'emailing complet (notifications, newsletters, segmentation) est un produit à part entière (délivrabilité, spam, désabonnements, conformité). RoadWave se concentre sur le strict minimum technique pour réduire la complexité et les coûts.

Volume estimé MVP : 2800-3500 emails/mois (~93-116 emails/jour en régime stable).

Contraintes : Souveraineté préférée (France/UE), RGPD natif, coût maîtrisé, API simple pour Go.

Décision

Brevo (ex-Sendinblue) comme service d'emailing transactionnel et SMS.

Alternatives considérées

Service Localisation Prix gratuit Prix 100K emails/mois SMS disponible
Brevo 🇫🇷 France 300 emails/jour (~9K/mois) ~49€ Oui
Scaleway TEM 🇫🇷 France 300 emails/mois ~25€ Non
Mailjet 🇫🇷 France 200 emails/jour (~6K/mois) ~50-100€ Non
Postal 🏠 Self-hosted Illimité (coût VPS) ~20-50€ Non

Justification

  • Plan gratuit généreux : 300 emails/jour (9000/mois) vs 300/mois chez Scaleway → coût 0 en MVP
  • SMS natif : Vérification anti-spam post-MVP (emails temporaires)
  • Souverain français : Hébergé France/UE, RGPD natif
  • CRM intégré : Gestion contacts, segmentation pour newsletters futures
  • Simplicité : API REST standard, SDK disponibles, documentation complète

Architecture

Backend Go → Brevo API REST → Utilisateurs
              ├── Emails transactionnels
              ├── Templates HTML
              ├── Webhooks (bounces, opens)
              └── [Post-MVP] SMS

Projection de coûts

Phase Users Emails/jour Coût Brevo
MVP 0-10K ~93/jour Gratuit (< 300/jour)
Growth 10K-50K ~467/jour 19€/mois (Lite)
Scale 50K-100K ~933/jour 49€/mois (Business)

Calcul : ~0.28 emails/user/mois (vérification, reset password, sécurité, modération)

Gestion pics : Rate limiting 250 emails/h, Redis queue, upgrade temporaire si > 300/jour sur 3+ jours

Conséquences

  • Coût MVP : 0€ (93 emails/jour << 300/jour gratuit)
  • Rate limiting requis en cas de pic inscription (> 300/jour)
  • Configuration DNS (SPF, DKIM, DMARC) pour délivrabilité
  • Wrapper Go custom (pas de SDK officiel)
  • Aucun email pour interactions sociales (à communiquer dans UX)
  • Aucun email pour paiements créateurs (Mangopay gère, dashboard in-app suffit)