[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f2904r0y6djqg3":3,"$f1vka285ph92xu":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},"1df0ad11-aabf-4fa1-a8d6-b337af0c0d6f","microservizi-external-service-client","it","CAPSULE","Client per Servizi Esterni","Internal Service Architecture","Incapsulare la tecnologia di integrazione in un client\u002Fadapter che implementa una porta applicativa.","Famiglia: Internal Service Architecture\nOrigine contenuto: Approfondimento integrativo costruito sui materiali architetturali del progetto.\n\nProblema\nChiamate HTTP o messaging sparse nel codice duplicano autenticazione, serializzazione, timeout ed error mapping.\n\nPattern\nIncapsulare la tecnologia di integrazione in un client\u002Fadapter che implementa una porta applicativa.\n\nCome funziona\nIl client configura base URL, auth, timeout, headers, correlation\u002Ftracing e mapping degli errori. Retry e circuit breaker vanno applicati con policy coerenti, non casualmente in ogni chiamata.\n\nEsempio sanitario\nPatientClient implementa PatientPort e chiama EMPI; il dominio riceve PatientIdentity o un errore tipizzato senza conoscere HTTP.\n\nBenefici\n• Integrazione testabile\n• Policy uniformi\n• Riduce accoppiamento al protocollo\n\nTrade-off\n• Rischio di client God object\n• Serve distinguere errori tecnici e semantici\n\nQuando usarlo\nPer qualunque dipendenza esterna non banale.\n\nQuando evitarlo\nQuando il client espone direttamente al dominio ResponseEntity o JSON grezzo.\n\nPattern correlati\n• microservizi-adapter\n• microservizi-timeout\n• microservizi-circuit-breaker\n","73f97745-5500-41e9-9bc7-a0d7a441f2bc","DEEPENED","EXAMPLE_ONLY","PUBLISHED",null,"2026-08-27T19:12:02.157Z","2026-09-05T13:22:19.783Z","Client per Servizi Esterni | Capsule Informatiche",7,4,{},"20676d31-9c90-432e-b23c-032bf2ba2a49",960,"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-external-service-client-01","Famiglia: Architettura applicativa · Approfondimento","callout",{"id":34,"text":35,"type":36},"ms-external-service-client-02","Il problema","heading2",{"id":38,"text":39,"type":40},"ms-external-service-client-03","Chiamate HTTP o messaging sparse nel codice duplicano autenticazione, serializzazione, timeout ed error mapping.","paragraph",{"id":42,"text":43,"type":36},"ms-external-service-client-04","Il pattern",{"id":45,"text":12,"type":40},"ms-external-service-client-05",{"id":47,"text":48,"type":36},"ms-external-service-client-06","Come funziona",{"id":50,"text":51,"type":40},"ms-external-service-client-07","Il client configura base URL, auth, timeout, headers, correlation\u002Ftracing e mapping degli errori. Retry e circuit breaker vanno applicati con policy coerenti, non casualmente in ogni chiamata.",{"id":53,"text":54,"type":36},"ms-external-service-client-08","Esempio sanitario",{"id":56,"text":57,"type":32},"ms-external-service-client-09","PatientClient implementa PatientPort e chiama EMPI; il dominio riceve PatientIdentity o un errore tipizzato senza conoscere HTTP.",{"id":59,"text":60,"type":36},"ms-external-service-client-10","Benefici",{"id":62,"type":63,"items":64},"ms-external-service-client-11","bullet_list","Integrazione testabile\nPolicy uniformi\nRiduce accoppiamento al protocollo",{"id":66,"text":67,"type":36},"ms-external-service-client-12","Trade-off",{"id":69,"type":63,"items":70},"ms-external-service-client-13","Rischio di client God object\nServe distinguere errori tecnici e semantici",{"id":72,"text":73,"type":36},"ms-external-service-client-14","Quando usarlo",{"id":75,"text":76,"type":40},"ms-external-service-client-15","Per qualunque dipendenza esterna non banale.",{"id":78,"text":79,"type":36},"ms-external-service-client-16","Quando evitarlo",{"id":81,"text":82,"type":40},"ms-external-service-client-17","Quando il client espone direttamente al dominio ResponseEntity o JSON grezzo.",{"id":84,"text":85,"type":36},"ms-external-service-client-18","Pattern correlati",{"id":87,"type":88,"relations":89},"ms-external-service-client-19","related_capsules",[90,95,100],{"slug":91,"title":92,"summary":93,"contentId":94},"microservizi-adapter","Adapter Pattern","Definire una porta interna e implementare adapter specifici per le tecnologie o i provider esterni.","77d359a1-fb98-4a93-8fd5-0925960883fd",{"slug":96,"title":97,"summary":98,"contentId":99},"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":101,"title":102,"summary":103,"contentId":104},"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","PORTAL","ANONYMOUS",false,"LATEST","AUTO",0,"EDITORIAL","Sponsorizzato",{"sources":114,"secondaryTopics":130,"tags":131,"primaryTopic":152,"technologies":156},[115,123],{"source_id":116},{"id":117,"type":118,"title":119,"author":18,"publisher":120,"edition":121,"url":18,"license_notes":122},"dfb11314-30d0-40ad-b93e-431188a3d6f0","PROJECT_NOTE","Riepilogo architetture piattaforma enterprise sanitaria","Capsule Informatiche","Materiale progettuale","Materiale progettuale già analizzato nel progetto Capsule Informatiche. Usato come riferimento integrativo per esempi sanitari e pattern moderni.",{"source_id":124},{"id":125,"type":126,"title":127,"author":18,"publisher":18,"edition":128,"url":18,"license_notes":129},"dffdee39-b493-4374-9ed8-ace3f16bb789","PDF","JavaScript Domain-Driven Design","Materiale di studio","Materiale di studio già caricato. Usato come riferimento integrativo per DDD, bounded context, modularità e separazione del dominio.",[],[132,137,142,147],{"tag_id":133},{"id":134,"name":135,"slug":136},"a94e416a-7400-4ff4-8671-a2fc5635c4e0","Microservizi","microservizi",{"tag_id":138},{"id":139,"name":140,"slug":141},"74df0420-fe01-463d-84f1-79bbc7ee7114","Design Pattern","design-pattern",{"tag_id":143},{"id":144,"name":145,"slug":146},"2cfaf938-ab4e-40ac-bbdf-265eda0b656a","API","api",{"tag_id":148},{"id":149,"name":150,"slug":151},"e82a05bd-fe62-48f8-8bf5-085a20fca285","Resilience","resilience",[153],{"id":14,"name":154,"slug":155},"Architettura Applicativa","architettura-applicativa",[157,163],{"technology_id":158},{"id":159,"name":160,"slug":161,"vendor":162},"39cdf97c-a2aa-43ee-9aa0-15ea178c0f97","Java","java","Oracle \u002F OpenJDK",{"technology_id":164},{"id":165,"name":166,"slug":167,"vendor":168},"36e283e6-d1d9-4e62-a4b1-9d14f05b7e23","Spring Boot","spring-boot","Broadcom"]