fix(blog): n'acquitter les GUID RSS qu'après une livraison XMPP confirmée #12
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Constat
fetch_blog_step()ajoute les GUID reçus àBlogRSSStateet met à jour l'état HTTP avant que le pipeline tente d'envoyer le message XMPP.Un article est donc définitivement considéré comme traité lorsque :
send_step()retourneFalse;PipelineRunner.Dans ces cas, l'article ne sera plus retourné lors de l'exécution suivante, bien qu'aucune livraison n'ait été confirmée. La préférence actuelle pour éviter les doublons cause ainsi une perte silencieuse d'information.
Proposition
Séparer la récupération de l'acquittement :
Conserver les validateurs HTTP (ETag/Last-Modified) dans une sémantique distincte et documenter le comportement voulu en absence de canal ou en dry-run. Une répétition après panne est préférable à une perte ; le message doit donc être tolérant aux doublons éventuels.
Critères d'acceptation
False, une absence de canal ou un dry-run laissent les articles récupérables au run suivant.False, canal absent, dry-run et reprise après redémarrage.Périmètre
Source RSS, orchestration de l'acquittement et documentation ; la politique de rétention à long terme des GUID peut faire l'objet d'un ticket séparé.