Démo Voir côté recruteur
Revelyum
Lucas Déconnexion
Développeur PHP Symfony mid, plateforme fintech (H/F)

Offre réelle Rapport d'entraînement · 17/10/2026 · 10 min

Solide sur Redis et cache. Symfony et traitements asynchrones et Doctrine et PostgreSQL, à consolider. Fiabilité des flux de paiement, à travailler.

Redis et cache

solide

Vu
Verrous distribués.
Reste à voir
Invalidation du cache, Durées de vie et données périmées.

Symfony et traitements asynchrones

à consolider

Vu
Handlers idempotents face aux messages rejoués, Stratégie de retry et file des messages en échec.
Reste à voir
Découpage en services et injection de dépendances, Tests fonctionnels d'un flux Symfony.

Doctrine et PostgreSQL

à consolider

Vu
Hydratation, N+1 et chargement des relations.
Reste à voir
Requêtes lentes, index et plan d'exécution, Migrations de schéma sans coupure de service.

Fiabilité des flux de paiement

à travailler

Vu
Transactions et verrous contre les doubles débits.
Reste à voir
Représenter les montants sans erreur d'arrondi, Rapprocher les paiements avec les relevés bancaires, Traçabilité et journal des opérations.

// À revoir

2 fiches à relire avant la prochaine session.

Fiche 1 sur 2 à consolider

Symfony et traitements asynchrones

Messenger relivre un message en échec selon la stratégie de retry configurée. Une erreur qui échouerait à l'identique doit être marquée irrécupérable, et l'appel externe doit venir quand tout ce qui peut échouer en base a déjà réussi.

  • Stratégie de retry et file d'échec
  • Exception irrécupérable pour une erreur définitive
  • Effet de bord placé après la dernière écriture
Fiche 2 sur 2 à travailler

Fiabilité des flux de paiement

Un message peut être livré deux fois : le traitement doit donner le même résultat s'il est rejoué. La garde la plus sûre est une contrainte unique sur la clé d'idempotence, que la base fait respecter même quand deux workers arrivent en même temps.

  • Clé d'idempotence fournie par l'appelant
  • Contrainte d'unicité en base plutôt qu'un SELECT avant INSERT
  • Statut du paiement mis à jour dans la même transaction que la clé

// Pas encore vu

Conception orientée domaine.

L'offre les demande. Cette session n'a pas eu le temps d'y aller.

  • Conception orientée domaine : Agrégats et invariants métier, Événements de domaine et effets de bord, Frontières entre contextes métier.

IA · ta prochaine session sur cette offre

Elle commence par Conception orientée domaine. Puis elle revient sur Fiabilité des flux de paiement et Symfony et traitements asynchrones.

Offre réelle

À la voix, sans caméra. Aucun recruteur ne le voit. 2 gratuits aujourd'hui.

// Ton plan de révision, étape par étape
  1. Ajouter une contrainte unique sur une clé d'idempotence dans un projet perso et la tester avec deux workers.

  2. Relire la configuration des retries de Messenger et provoquer volontairement un échec.

  3. Refaire un entraînement sur cette offre en insistant sur la conception orientée domaine.