Voici mes notes prises en séance lors du OSS Talk Reactive Architecture du 20/10/2016.
Les slides Retour d’expérience: architecure réactive sont en ligne.
Préparation
- Domain Driven Developpement : découper les tâches et responsabilités par domaine métier
Going Reactive
Reactive Manifesto i.e. :
- responsive
- resilient
- elastic
- message-driven /!\ les messages doivent être asynchrones
Let’s migrate
- commençons par les briques techniques
- ExchangeBundle (lib PHP en symfony) avec RabbitMQ dedans –> fail, ne respecte pas le Reactive Manifessto
- Quid du format d’échange des message ? –> Canonical Data Model
Un standard pour le transport ?
Cahier des charges :
- stateless
- scalable
- gérer les cas d’erreurs
–> HTTP
ApiBundle
- pattern « observer » utilisé :
- ajouté aussi de la gestion de cache avec un Redis
- mais interdit d’y mettre de la logique métier
Point reactive
Valide sur tout sauf message
Introduction du Enterprise Service Bus
- a priori seulement pour les gros projets, sinon RabbitMQ suffit
ce qu’on attend de l’ESB
- très haute dispo
- garantie de livraison d’un message
- doit être asynchrone i.e. message-oriented
- support coomplet de REST et des codes d’erreurs HTTP (i.e. 404 signifie quelque chose)
- un service locator: pour ne pas avoir à placer une adresse en dure
Chez Auchan, l’ESB est Talend ESB (aurait pu être WSO2 ou Spring-Integration ou en beaucoup plus light Apache Camel)
EOT (End Of Tranmission)