[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f16jubr4jakog0":3,"$f2pnjccbqhutjv":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},"1bd1d50c-e16e-4dc2-afdf-8a7858c3adff","microservizi-anti-corruption-layer","it","CAPSULE","Anti-Corruption Layer (ACL)","Legacy Modernization","Inserire un layer di traduzione tra il nuovo bounded context e il legacy, mantenendo il nuovo linguaggio di dominio pulito.","Famiglia: Legacy Modernization\nOrigine contenuto: Approfondimento integrativo costruito sui materiali architetturali del progetto.\n\nProblema\nIl modello legacy contiene nomenclature, codici e semantiche che contaminerebbero il nuovo dominio se venissero riutilizzate direttamente.\n\nPattern\nInserire un layer di traduzione tra il nuovo bounded context e il legacy, mantenendo il nuovo linguaggio di dominio pulito.\n\nCome funziona\nL'ACL traduce payload, codici, errori e concetti; può essere implementata come adapter, facade o servizio di integrazione. Deve avere test di mapping molto espliciti.\n\nEsempio sanitario\nCOD_PAZ diventa patientId, NOSOLOGICO episodeId, COD_REP wardId senza propagare i nomi legacy nel nuovo dominio.\n\nBenefici\n• Protegge il nuovo modello\n• Concentra mapping legacy\n• Facilita sostituzione futura\n\nTrade-off\n• Layer aggiuntivo\n• Mapping complessi possono nascondere ambiguità\n\nQuando usarlo\nQuando si integra un nuovo bounded context con un modello legacy incompatibile.\n\nQuando evitarlo\nQuando i due modelli sono già semanticamente equivalenti.\n\nPattern correlati\n• microservizi-adapter\n• microservizi-strangler-fig\n• microservizi-bounded-context\n","de6b818d-ed03-4870-964f-1061e7733db6","DEEPENED","EXAMPLE_ONLY","PUBLISHED",null,"2026-08-27T19:12:02.157Z","2026-09-05T13:22:19.783Z","Anti-Corruption Layer (ACL) | Capsule Informatiche",8,4,{},"20676d31-9c90-432e-b23c-032bf2ba2a49",800,"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-anti-corruption-layer-01","Famiglia: Modernizzazione legacy · Approfondimento","callout",{"id":34,"text":35,"type":36},"ms-anti-corruption-layer-02","Il problema","heading2",{"id":38,"text":39,"type":40},"ms-anti-corruption-layer-03","Il modello legacy contiene nomenclature, codici e semantiche che contaminerebbero il nuovo dominio se venissero riutilizzate direttamente.","paragraph",{"id":42,"text":43,"type":36},"ms-anti-corruption-layer-04","Il pattern",{"id":45,"text":12,"type":40},"ms-anti-corruption-layer-05",{"id":47,"text":48,"type":36},"ms-anti-corruption-layer-06","Come funziona",{"id":50,"text":51,"type":40},"ms-anti-corruption-layer-07","L'ACL traduce payload, codici, errori e concetti; può essere implementata come adapter, facade o servizio di integrazione. Deve avere test di mapping molto espliciti.",{"id":53,"text":54,"type":36},"ms-anti-corruption-layer-08","Esempio sanitario",{"id":56,"text":57,"type":32},"ms-anti-corruption-layer-09","COD_PAZ diventa patientId, NOSOLOGICO episodeId, COD_REP wardId senza propagare i nomi legacy nel nuovo dominio.",{"id":59,"text":60,"type":36},"ms-anti-corruption-layer-10","Benefici",{"id":62,"type":63,"items":64},"ms-anti-corruption-layer-11","bullet_list","Protegge il nuovo modello\nConcentra mapping legacy\nFacilita sostituzione futura",{"id":66,"text":67,"type":36},"ms-anti-corruption-layer-12","Trade-off",{"id":69,"type":63,"items":70},"ms-anti-corruption-layer-13","Layer aggiuntivo\nMapping complessi possono nascondere ambiguità",{"id":72,"text":73,"type":36},"ms-anti-corruption-layer-14","Quando usarlo",{"id":75,"text":76,"type":40},"ms-anti-corruption-layer-15","Quando si integra un nuovo bounded context con un modello legacy incompatibile.",{"id":78,"text":79,"type":36},"ms-anti-corruption-layer-16","Quando evitarlo",{"id":81,"text":82,"type":40},"ms-anti-corruption-layer-17","Quando i due modelli sono già semanticamente equivalenti.",{"id":84,"text":85,"type":36},"ms-anti-corruption-layer-18","Pattern correlati",{"id":87,"type":88,"relations":89},"ms-anti-corruption-layer-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-strangler-fig","Strangler Fig Pattern","Affiancare il nuovo sistema al legacy, spostando progressivamente capability e traffico attraverso un livello di routing fino a poter eliminare le parti sostituite.","16c513a4-3694-4daa-97ab-e7875ab24328",{"slug":101,"title":102,"summary":103,"contentId":104},"microservizi-bounded-context","Bounded Context: proteggere il significato del dominio","Definire confini semantici entro cui un modello ha significato univoco e non condividere automaticamente lo stesso domain model tra servizi.","71bf8a73-cfd4-4d57-b483-88ae64156d05","PORTAL","ANONYMOUS",false,"LATEST","AUTO",0,"EDITORIAL","Sponsorizzato",{"sources":114,"secondaryTopics":135,"tags":136,"primaryTopic":162,"technologies":166},[115,123,128],{"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":118,"title":126,"author":18,"publisher":120,"edition":121,"url":18,"license_notes":127},"d1cfd7ef-53d0-4124-bafd-8c10c7ce7fde","ADT - Architettura tecnica e pattern distribuiti","Materiale architetturale già analizzato. Usato come riferimento integrativo per messaging, outbox\u002Finbox, idempotenza, saga, read model, resilienza e observability.",{"source_id":129},{"id":130,"type":131,"title":132,"author":18,"publisher":18,"edition":133,"url":18,"license_notes":134},"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.",[],[137,142,147,152,157],{"tag_id":138},{"id":139,"name":140,"slug":141},"a94e416a-7400-4ff4-8671-a2fc5635c4e0","Microservizi","microservizi",{"tag_id":143},{"id":144,"name":145,"slug":146},"74df0420-fe01-463d-84f1-79bbc7ee7114","Design Pattern","design-pattern",{"tag_id":148},{"id":149,"name":150,"slug":151},"d6f0ea98-8091-41fe-9de6-f1b0c5765f54","Legacy","legacy",{"tag_id":153},{"id":154,"name":155,"slug":156},"43524fb2-d0fe-4b4b-8143-137f73c134b5","DDD","ddd",{"tag_id":158},{"id":159,"name":160,"slug":161},"83d2bbde-124e-4816-80b8-9b8643df074d","Healthcare","healthcare",[163],{"id":14,"name":164,"slug":165},"Modernizzazione Legacy","modernizzazione-legacy",[]]