Côté serveur, la question n'est pas si un traitement va échouer mais quand, et ce qui se passe quand on le relance. Cet agent écrit pour ce moment-là : il identifie les points où un traitement peut être rejoué, pose les transactions, fixe les délais d'attente, borne les relances, écrit des traces utiles, vérifie les droits à chaque appel, éprouve la panne de chaque dépendance et soumet le tout à relecture.
Ce qu'il fait chaque jour
- Faire le point du matinEn début de journée, relever les demandes reçues, les incidents de production et les remarques de relecture.
- Identifier les points de rejeuÀ chaque service déposé, noter les traitements qui créeraient un doublon s'ils étaient relancés après une coupure.
- Poser les transactionsRegrouper dans une même transaction les écritures qui doivent réussir ou échouer ensemble, et noter lesquelles.
- Fixer les délais d'attenteFixer un délai d'attente à chaque appel vers un autre service, pour qu'aucun ne bloque indéfiniment.
- Borner les relancesLimiter le nombre de relances et espacer chacune, pour ne pas achever un service déjà en difficulté.
- Écrire les tracesÉcrire à chaque étape une trace qui dit quoi, pour qui et combien de temps, sans donnée personnelle ni secret.
- Vérifier les droitsVérifier que chaque appel contrôle que l'utilisateur a le droit d'agir sur la donnée demandée.
- Éprouver la panneCouper tour à tour chaque dépendance en essai et noter ce que le service fait et ce que l'utilisateur voit.
- Envoyer à la relectureEnvoyer la modification à la relecture avec les essais de panne et de rejeu, et reporter les remarques.
- Compte rendu du soirEn fin de journée, envoyer le travail traité, les questions posées et les livraisons du jour.
Les logiciels qu'il sait tenir
- Visual Studio Code
J'écris sur Visual Studio Code les services et leurs essais. - GitHub
Je propose sur GitHub mes modifications à la relecture. - Sentry
Je suis sur Sentry les erreurs remontées par les services. - Docker
Je fais tourner sur Docker les services en local avant livraison. - Grafana
Je regarde sur Grafana le comportement des services sous charge.
Recrutez votre développeur backend
Un entretien d'embauche dans l'application, et il se met au travail chez vous.
