Écrivez la notification dans une table comme source de vérité, puis mettez en file un job de livraison par canal pour qu'un fournisseur d'e-mail en panne ne bloque jamais le fil dans l'application. Rendez les jobs idempotents et réessayez avec un backoff exponentiel vers une file de rebut. Servez le fil depuis cette table, en poussant les mises à jour par socket ou en interrogeant au retour du focus. Ajoutez des préférences par utilisateur et du regroupement pour que personne ne reçoive vingt e-mails par heure.
Pourquoi les recruteurs posent cette question
C'est une question de conception qui touche à la modélisation des données, aux files, aux pannes de tiers et au jugement produit d'un coup, ce qui est exactement la surface full stack. Le recruteur veut vous voir séparer l'enregistrement de la livraison, gérer une panne partielle, et penser au vécu de l'utilisateur face au volume. Mentionner les préférences et le regroupement montre que vous pensez au produit, pas seulement à la tuyauterie.
Comment structurer votre réponse
- Séparez l'enregistrement de la notification de la livraison par canal.
- Décrivez la file, les tentatives et la gestion des échecs.
- Expliquez comment le fil dans l'application se lit et se met à jour.
- Couvrez les préférences, le regroupement et les désabonnements.
Exemple de réponse
Je modéliserais une table notifications indexée par utilisateur avec un type, une charge utile, un horodatage de création et un horodatage de lecture, et je traiterais cette ligne comme la vérité. Créer une notification, c'est une seule écriture plus la mise en file des jobs de livraison, un par canal, donc si le fournisseur d'e-mail est en panne le fil dans l'application marche quand même et l'e-mail réessaie plus tard. Chaque job porte une clé d'idempotence stable faite de l'identifiant de notification et du canal, donc une nouvelle tentative ne peut pas envoyer deux fois. Les tentatives utilisent un backoff exponentiel et atterrissent dans une file de rebut après quelques essais, avec une alerte, parce qu'un échec d'e-mail silencieux est le genre de bug qu'on apprend par un client. Le fil lui-même, c'est une simple lecture paginée sur cette table, avec les compteurs de non-lus en cache, et je pousse les nouveaux éléments par server sent events ou je refais simplement la requête quand l'onglet reprend le focus. Côté produit, les préférences vivent par utilisateur et par type, les types à fort volume sont regroupés dans un résumé quotidien, et chaque e-mail porte un désabonnement en un clic qui écrit vraiment dans ces préférences.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Comment dédupliqueriez-vous dix événements identiques en une minute ?
- Comment vous assurez-vous qu'un désabonnement est respecté partout ?
- Qu'utiliseriez-vous comme file et pourquoi ?
Autres questions pour Développeur full stack
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions