La parole est aux speakers : Ismaile Abdallah

Publié le

Jusqu’à l’AFUP Day 2025, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Async sans stress : Les erreurs à ne plus commettre

Dans ce talk, nous explorerons comment Symfony Messenger permet de mettre en place facilement une architecture event-driven et de gérer des processus asynchrones.

Cependant, tout n'est pas toujours aussi simple qu'il n'y paraît. Lorsque votre application commence à monter en charge, de nouveaux challenges apparaissent : problèmes de performance, saturation des files de messages, gestion des erreurs silencieuses, et bien d'autres surprises. Nous passerons en revue les erreurs courantes et je partagerai avec vous un retour d'expérience concret sur les pièges à éviter.

C.P.E. Lyon
16/05/2025
16:20-17:00

Tu mentionnes des problèmes de performance lorsque l’application monte en charge. Quels sont les signes avant-coureurs de ces problèmes et comment peut-on les anticiper ?

Les signes avant-coureurs dépendent du contexte de l’entreprise.

Dans notre cas, nous avons remarqué des « Deadlock » sur notre base de données qui s’affichent dans les logs en même temps que notre application est stressée.

Cependant, il existe d’autres signes avant-coureurs qui ne sont pas liés à la tech. Par exemple, quand la·le commercial·e débarque et t’annonce qu’un gros deal vient d’être signé, avec un énorme volume de données à gérer.

Afin d’anticiper, il est crucial d’avoir un environnement de test ISO Prod qui nous permet de tester les fonctionnalités critiques et de mesurer le temps d’exécution.

Quels sont les bugs asynchrones les plus “WTF” que tu as pu rencontrer en production ?

J’appelle ce bug OBJECT To SQL. Certains systèmes, par souci de performance, choisissent d’effectuer des mises à jour directement en pure SQL à partir d’objet PHP sans passer par doctrine.

Cela peut entraîner des problèmes d’intégrité des données si cet objet est consommé simultanément par plusieurs consommateurs, notamment lorsque l’application subit une forte charge.

Quand on pense Async en PHP on pense directement à RabbitMQ ou plus récemment Symfony Messenger. Est-il possible de faire de l’Async sans bibliothèque tierce ?

Il est donc possible de se passer de Symfony Messenger pour utiliser RabbitMq directement avec la librairie PhpAmqpLib. Cependant, avec cette approche, en plus de gérer le code métier, il faudra également gérer soi-même :

  • La configuration des exchanges / queues
  • La stratégie de retry en cas d’échec
  • Les logs.

Ainsi, si on évolue dans un environnement Symfony, Symfony Messenger reste à ce jour la solution la plus simple et efficace pour mettre en place de l’asynchrone dans une application, sans avoir à réinventer la roue.

Une conférence présentée par

ismaile ABDALLAH
ismaile ABDALLAH
Développeur back-end, passionné par l'architecture logicielle et le clean code, Ismaile est expert en PHP et spécialisé dans le framework Symfony.

Autres intervenants