[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f2w7jv6yq7lv00":3,"$f1smn1ct6i5ycr":113},{"data":4},[5],{"id":6,"slug":7,"locale":8,"type":9,"title":10,"subtitle":11,"summary":12,"body":13,"primary_topic":14,"knowledge_status":15,"practical_validation":16,"workflow_status":17,"author_id":18,"published_at":19,"updated_at":20,"review_due_at":18,"canonical_url":18,"seo_title":21,"seo_description":12,"hero_asset_id":18,"reading_time":22,"version":23,"technology_versions":24,"review_frequency_days":18,"parent_content_id":25,"sort_in_parent":26,"hub_entry_status":27,"content_blocks":28,"hero_alt_text":18,"hero_caption":18,"hero_credit":18,"publication_scope":105,"access_level":106,"approved_at":18,"approved_by":18,"review_note":18,"home_enabled":107,"home_slot":108,"home_variant":109,"home_priority":110,"home_eyebrow":18,"home_valid_from":18,"home_valid_to":18,"home_image_asset_id":18,"promotion_kind":111,"sponsor_name":18,"sponsor_url":18,"sponsor_disclosure":112},"e6838c31-cbc5-4dc1-8a9d-3d8fff0453de","microservizi-retry-backoff-jitter","it","CAPSULE","Retry, Exponential Backoff e Jitter","Cross-Cutting & Resilience","Ritentare solo errori transitori e operazioni idempotenti, usando exponential backoff, jitter e un numero massimo di tentativi.","Famiglia: Cross-Cutting & Resilience\nOrigine contenuto: Approfondimento integrativo costruito sui materiali architetturali del progetto.\n\nProblema\nErrori temporanei possono risolversi rapidamente, ma retry simultanei e aggressivi possono trasformare un degrado in una retry storm.\n\nPattern\nRitentare solo errori transitori e operazioni idempotenti, usando exponential backoff, jitter e un numero massimo di tentativi.\n\nCome funziona\nIl retry deve rispettare la deadline globale ed essere coordinato con circuit breaker. Non si deve ritentare su 4xx semantici o comandi non idempotenti senza chiave.\n\nEsempio sanitario\nUn consumer RabbitMQ ritenta un timeout temporaneo con backoff; un errore di validazione HL7 viene invece mandato in DLQ senza retry infinito.\n\nBenefici\n• Recupera failure transitori\n• Riduce carico sincronizzato con jitter\n• Migliora disponibilità\n\nTrade-off\n• Può moltiplicare il carico\n• Rischio duplicati\n• Aumenta latenza percepita\n\nQuando usarlo\nPer errori chiaramente transitori e operazioni idempotenti.\n\nQuando evitarlo\nPer errori deterministici, validation failure o senza budget di tempo.\n\nPattern correlati\n• microservizi-timeout\n• microservizi-circuit-breaker\n• microservizi-idempotent-consumer\n","f4534ede-c678-4c38-be49-daa394f6ed9b","DEEPENED","EXAMPLE_ONLY","PUBLISHED",null,"2026-08-27T19:12:02.157Z","2026-09-05T13:22:19.783Z","Retry, Exponential Backoff e Jitter | Capsule Informatiche",8,4,{},"20676d31-9c90-432e-b23c-032bf2ba2a49",740,"PLANNED",[29,33,37,41,44,46,49,52,55,58,61,65,68,71,74,77,80,83,86],{"id":30,"text":31,"type":32},"ms-retry-backoff-jitter-01","Famiglia: Aspetti trasversali e resilienza · Approfondimento","callout",{"id":34,"text":35,"type":36},"ms-retry-backoff-jitter-02","Il problema","heading2",{"id":38,"text":39,"type":40},"ms-retry-backoff-jitter-03","Errori temporanei possono risolversi rapidamente, ma retry simultanei e aggressivi possono trasformare un degrado in una retry storm.","paragraph",{"id":42,"text":43,"type":36},"ms-retry-backoff-jitter-04","Il pattern",{"id":45,"text":12,"type":40},"ms-retry-backoff-jitter-05",{"id":47,"text":48,"type":36},"ms-retry-backoff-jitter-06","Come funziona",{"id":50,"text":51,"type":40},"ms-retry-backoff-jitter-07","Il retry deve rispettare la deadline globale ed essere coordinato con circuit breaker. Non si deve ritentare su 4xx semantici o comandi non idempotenti senza chiave.",{"id":53,"text":54,"type":36},"ms-retry-backoff-jitter-08","Esempio sanitario",{"id":56,"text":57,"type":32},"ms-retry-backoff-jitter-09","Un consumer RabbitMQ ritenta un timeout temporaneo con backoff; un errore di validazione HL7 viene invece mandato in DLQ senza retry infinito.",{"id":59,"text":60,"type":36},"ms-retry-backoff-jitter-10","Benefici",{"id":62,"type":63,"items":64},"ms-retry-backoff-jitter-11","bullet_list","Recupera failure transitori\nRiduce carico sincronizzato con jitter\nMigliora disponibilità",{"id":66,"text":67,"type":36},"ms-retry-backoff-jitter-12","Trade-off",{"id":69,"type":63,"items":70},"ms-retry-backoff-jitter-13","Può moltiplicare il carico\nRischio duplicati\nAumenta latenza percepita",{"id":72,"text":73,"type":36},"ms-retry-backoff-jitter-14","Quando usarlo",{"id":75,"text":76,"type":40},"ms-retry-backoff-jitter-15","Per errori chiaramente transitori e operazioni idempotenti.",{"id":78,"text":79,"type":36},"ms-retry-backoff-jitter-16","Quando evitarlo",{"id":81,"text":82,"type":40},"ms-retry-backoff-jitter-17","Per errori deterministici, validation failure o senza budget di tempo.",{"id":84,"text":85,"type":36},"ms-retry-backoff-jitter-18","Pattern correlati",{"id":87,"type":88,"relations":89},"ms-retry-backoff-jitter-19","related_capsules",[90,95,100],{"slug":91,"title":92,"summary":93,"contentId":94},"microservizi-timeout","Timeout Pattern","Definire connect, read\u002Frequest e, dove applicabile, deadline end-to-end coerenti con l'SLO del caso d'uso.","1ad68d3e-6866-4ecb-942d-ac7a5dc36b40",{"slug":96,"title":97,"summary":98,"contentId":99},"microservizi-circuit-breaker","Circuit Breaker","Aprire il circuito dopo una soglia di errori; fallire velocemente durante OPEN; sondare il recupero in HALF_OPEN.","17cc652f-4b65-4896-8b14-3da327dd9c96",{"slug":101,"title":102,"summary":103,"contentId":104},"microservizi-idempotent-consumer","Idempotent Consumer","Progettare il consumer affinché ripetere la stessa operazione produca lo stesso risultato osservabile e non side effect duplicati.","261121b2-7b46-4064-b73a-0fbd70c4198e","PORTAL","ANONYMOUS",false,"LATEST","AUTO",0,"EDITORIAL","Sponsorizzato",{"sources":114,"secondaryTopics":128,"tags":134,"primaryTopic":155,"technologies":159},[115,123],{"source_id":116},{"id":117,"type":118,"title":119,"author":18,"publisher":120,"edition":121,"url":18,"license_notes":122},"d1cfd7ef-53d0-4124-bafd-8c10c7ce7fde","PROJECT_NOTE","ADT - Architettura tecnica e pattern distribuiti","Capsule Informatiche","Materiale progettuale","Materiale architetturale già analizzato. Usato come riferimento integrativo per messaging, outbox\u002Finbox, idempotenza, saga, read model, resilienza e observability.",{"source_id":124},{"id":125,"type":118,"title":126,"author":18,"publisher":120,"edition":121,"url":18,"license_notes":127},"dfb11314-30d0-40ad-b93e-431188a3d6f0","Riepilogo architetture piattaforma enterprise sanitaria","Materiale progettuale già analizzato nel progetto Capsule Informatiche. Usato come riferimento integrativo per esempi sanitari e pattern moderni.",[129],{"topic_id":130},{"id":131,"name":132,"slug":133},"fb07b613-5035-42f5-9f41-14223cfeb950","Delivery e Runtime","delivery-runtime",[135,140,145,150],{"tag_id":136},{"id":137,"name":138,"slug":139},"a94e416a-7400-4ff4-8671-a2fc5635c4e0","Microservizi","microservizi",{"tag_id":141},{"id":142,"name":143,"slug":144},"74df0420-fe01-463d-84f1-79bbc7ee7114","Design Pattern","design-pattern",{"tag_id":146},{"id":147,"name":148,"slug":149},"e82a05bd-fe62-48f8-8bf5-085a20fca285","Resilience","resilience",{"tag_id":151},{"id":152,"name":153,"slug":154},"8a4acd2c-68fc-4e87-9a46-7c6d317d715b","Event-Driven","event-driven",[156],{"id":14,"name":157,"slug":158},"Resilienza","resilienza",[]]