**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>
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)