-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE] Envoi de l'email de creation de compte en asynchrone (PIX-15112) #10509
[FEATURE] Envoi de l'email de creation de compte en asynchrone (PIX-15112) #10509
Conversation
Une fois les applications déployées, elles seront accessibles via les liens suivants :
Les variables d'environnement seront accessibles via les liens suivants : |
6897674
to
4093c74
Compare
97c0470
to
03913a6
Compare
03913a6
to
819fa1e
Compare
819fa1e
to
46de473
Compare
api/src/identity-access-management/domain/emails/create-account-creation.email.js
Show resolved
Hide resolved
923151c
to
0e0cadc
Compare
0e0cadc
to
2279f21
Compare
bbfce4b
to
a51322c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lu et testé avec succès
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lu et testé en local pour la partie inscription et en RA sur firefox pour la partie création et réconciliation ✅
Aussi détaillé la procédure pour tester cette partie là 😄
a51322c
to
295efe3
Compare
🍂 Problème
Quand un utilisateur créé un compte, si Brevo est down, l'envoi de l'email de "Création de compte" bloque l'appel HTTP de création de compte.
🌰 Proposition
La solution prise est de réaliser l'envoi de cet email via un Job afin que l'envoi de cet email soit asynchrone et ne bloque pas l'appel de création de compte. De plus, cela permet de bénéficier des stratégies de retry des jobs en cas d'indisponibilité de Brevo.
Nous profitons de cette modification pour mettre en place de nouvelles conventions autour de la création et l'envoi d'emails via l'API, afin d'étendre cette pratique aux autres emails transactionnels.
Voici les modifications apportées:
EmailFactory
permettant l'instanciation d'un modèle d'Email
.Email
est une représentation sérialisable des informations nécessaires à l'envoie d'un email.Email
porte la validation des informations nécessaires (template
,from
,to
,subject
...)emailRepository
proposant 2 fonctions:sendEmail(email: Email)
: Envoi un email de façon synchrone.sendEmailAsync(email: Email)
: Envoi un email via un Job asynchrone.emailRepository
pourra être utilisé dans tous les use-cases afin d'envoyer un email créé via l'EmailFactory
🎃 Remarques
Note
Ce type d'architecture permettra:
EmailFactory
) afin de gérer les modèles de template dans la codebase au lieu de Brevo (et de le faire de manière progressive).🪵 Pour tester
Important
Il faut désormais lancer les workers en local pour recevoir l'email de création de compte.
npm run start:worker
(les logs seront à regarder dedans)Création de compte utilisateur
Sur Pix.fr:
Sur Pix.org
Création de compte utilisateur avec réconciliation
Note
A faire en RA tant que le correctif correspondant n'est pas mergé #10537