[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f2nkp3torhjyis":3,"$f34n3myhb41s6f":108},{"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":100,"access_level":101,"approved_at":18,"approved_by":18,"review_note":18,"home_enabled":102,"home_slot":103,"home_variant":104,"home_priority":105,"home_eyebrow":18,"home_valid_from":18,"home_valid_to":18,"home_image_asset_id":18,"promotion_kind":106,"sponsor_name":18,"sponsor_url":18,"sponsor_disclosure":107},"261121b2-7b46-4064-b73a-0fbd70c4198e","microservizi-idempotent-consumer","it","CAPSULE","Idempotent Consumer","Database & Consistency","Progettare il consumer affinché ripetere la stessa operazione produca lo stesso risultato osservabile e non side effect duplicati.","Famiglia: Database & Consistency\nOrigine contenuto: Approfondimento integrativo costruito sui materiali architetturali del progetto.\n\nProblema\nRetry e redelivery fanno sì che una stessa richiesta o evento possa essere eseguito più volte.\n\nPattern\nProgettare il consumer affinché ripetere la stessa operazione produca lo stesso risultato osservabile e non side effect duplicati.\n\nCome funziona\nSi può usare una idempotency key, un vincolo univoco, una inbox o un controllo sullo stato del dominio. L'idempotenza deve includere anche chiamate esterne, quando possibile.\n\nEsempio sanitario\nCreateInvoice(order=123) non deve generare una seconda fattura se riceve di nuovo lo stesso evento.\n\nBenefici\n• Rende sicuri retry e redelivery\n• Riduce errori duplicati\n• Migliora resilienza\n\nTrade-off\n• Richiede identificatori e stato di deduplica\n• Non tutti i side effect sono facilmente idempotenti\n\nQuando usarlo\nPer comandi remoti, webhook e consumer di messaggi.\n\nQuando evitarlo\nQuando si assume erroneamente exactly-once end-to-end senza supporto reale.\n\nPattern correlati\n• microservizi-inbox\n• microservizi-retry-backoff-jitter\n","6f7335c9-bd3f-408f-b64c-b6b1ab0016d8","DEEPENED","EXAMPLE_ONLY","PUBLISHED",null,"2026-08-27T19:12:02.157Z","2026-09-05T13:22:19.783Z","Idempotent Consumer | Capsule Informatiche",7,4,{},"20676d31-9c90-432e-b23c-032bf2ba2a49",470,"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-idempotent-consumer-01","Famiglia: Dati e consistenza · Approfondimento","callout",{"id":34,"text":35,"type":36},"ms-idempotent-consumer-02","Il problema","heading2",{"id":38,"text":39,"type":40},"ms-idempotent-consumer-03","Retry e redelivery fanno sì che una stessa richiesta o evento possa essere eseguito più volte.","paragraph",{"id":42,"text":43,"type":36},"ms-idempotent-consumer-04","Il pattern",{"id":45,"text":12,"type":40},"ms-idempotent-consumer-05",{"id":47,"text":48,"type":36},"ms-idempotent-consumer-06","Come funziona",{"id":50,"text":51,"type":40},"ms-idempotent-consumer-07","Si può usare una idempotency key, un vincolo univoco, una inbox o un controllo sullo stato del dominio. L'idempotenza deve includere anche chiamate esterne, quando possibile.",{"id":53,"text":54,"type":36},"ms-idempotent-consumer-08","Esempio sanitario",{"id":56,"text":57,"type":32},"ms-idempotent-consumer-09","CreateInvoice(order=123) non deve generare una seconda fattura se riceve di nuovo lo stesso evento.",{"id":59,"text":60,"type":36},"ms-idempotent-consumer-10","Benefici",{"id":62,"type":63,"items":64},"ms-idempotent-consumer-11","bullet_list","Rende sicuri retry e redelivery\nRiduce errori duplicati\nMigliora resilienza",{"id":66,"text":67,"type":36},"ms-idempotent-consumer-12","Trade-off",{"id":69,"type":63,"items":70},"ms-idempotent-consumer-13","Richiede identificatori e stato di deduplica\nNon tutti i side effect sono facilmente idempotenti",{"id":72,"text":73,"type":36},"ms-idempotent-consumer-14","Quando usarlo",{"id":75,"text":76,"type":40},"ms-idempotent-consumer-15","Per comandi remoti, webhook e consumer di messaggi.",{"id":78,"text":79,"type":36},"ms-idempotent-consumer-16","Quando evitarlo",{"id":81,"text":82,"type":40},"ms-idempotent-consumer-17","Quando si assume erroneamente exactly-once end-to-end senza supporto reale.",{"id":84,"text":85,"type":36},"ms-idempotent-consumer-18","Pattern correlati",{"id":87,"type":88,"relations":89},"ms-idempotent-consumer-19","related_capsules",[90,95],{"slug":91,"title":92,"summary":93,"contentId":94},"microservizi-inbox","Inbox Pattern","Registrare gli identificativi dei messaggi processati in una inbox locale e usare tale registro per deduplicare.","0bae590c-5046-4433-b562-ba2cfd0fbdf2",{"slug":96,"title":97,"summary":98,"contentId":99},"microservizi-retry-backoff-jitter","Retry, Exponential Backoff e Jitter","Ritentare solo errori transitori e operazioni idempotenti, usando exponential backoff, jitter e un numero massimo di tentativi.","e6838c31-cbc5-4dc1-8a9d-3d8fff0453de","PORTAL","ANONYMOUS",false,"LATEST","AUTO",0,"EDITORIAL","Sponsorizzato",{"sources":109,"secondaryTopics":123,"tags":124,"primaryTopic":150,"technologies":154},[110,118],{"source_id":111},{"id":112,"type":113,"title":114,"author":18,"publisher":115,"edition":116,"url":18,"license_notes":117},"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":119},{"id":120,"type":113,"title":121,"author":18,"publisher":115,"edition":116,"url":18,"license_notes":122},"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.",[],[125,130,135,140,145],{"tag_id":126},{"id":127,"name":128,"slug":129},"a94e416a-7400-4ff4-8671-a2fc5635c4e0","Microservizi","microservizi",{"tag_id":131},{"id":132,"name":133,"slug":134},"74df0420-fe01-463d-84f1-79bbc7ee7114","Design Pattern","design-pattern",{"tag_id":136},{"id":137,"name":138,"slug":139},"8a4acd2c-68fc-4e87-9a46-7c6d317d715b","Event-Driven","event-driven",{"tag_id":141},{"id":142,"name":143,"slug":144},"e82a05bd-fe62-48f8-8bf5-085a20fca285","Resilience","resilience",{"tag_id":146},{"id":147,"name":148,"slug":149},"52c3bb5a-82db-413f-b02d-3e8d00a812cf","Data Consistency","data-consistency",[151],{"id":14,"name":152,"slug":153},"Dati e Consistenza Distribuita","dati-consistenza-distribuita",[155,161],{"technology_id":156},{"id":157,"name":158,"slug":159,"vendor":160},"61595be7-6d6f-43ab-bec2-bef42e840988","PostgreSQL","postgresql","PostgreSQL Global Development Group",{"technology_id":162},{"id":163,"name":164,"slug":165,"vendor":166},"7a3c6429-42e8-48cf-ade7-542ad922e526","RabbitMQ","rabbitmq","Broadcom"]