Un microservice qui tournait alors que rien ne l'utilisait
A Rust thumbnail service wrote 200px and 800px variants into documents.thumbnails_json that every resolver ignored in favour of the full-res original.
Construit, et rien ne s'en servait
Livré, typé, injecté, inatteignable. Rien ne l'a jamais appelé.
Le service génère des variantes 200px et 800px à chaque upload et les stocke dans documents.thumbnails_json. Chaque résolveur côté organisation — resolveLogoUrl, resolveCoverUrl, aperçu de galerie, galerie complète, photos du personnel — signait document.storage_key, l'original en pleine résolution. Seul le chemin du Centre de documents demandait jamais une variante.
Donc il était déployé, en bonne santé, brûlant du CPU à chaque upload, et toute sa sortie était du poids mort dans le stockage. Ça a fait surface comme une plainte Lighthouse sur la livraison d'images, pas comme quoi que ce soit que quelqu'un reconnaîtrait comme « le générateur de vignettes n'est pas branché ».
Deux choses en sont sorties. Un bug d'ordre dans getSignedUrlWithoutAccessCheck renvoyait des URL HTTP externes avant que la résolution de vignettes ne tourne, donc une image hébergée en externe ne pouvait jamais servir une variante même après backfill — un correctif de trois lignes. Et l'imagerie de seed est constituée d'URL Unsplash externes que le service ne peut pas toucher du tout, ce qui a nécessité un redimensionnement par paramètre d'URL côté client à la place.
Ce qui a changé dans ma façon de travailler : le correctif incluait du logging par image des deux côtés, parce que le mode de défaillance n'était pas un crash, c'était le silence. Un service sans observabilité par requête peut être contourné indéfiniment et paraître quand même vert sur son health check.