[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f11x3ou1xxeynn":3,"$f38f74eigffaq8":130},{"dynamic":4,"count":5,"source":6,"data":7,"hub":123},true,15,"EDITORIAL_HUB",[8,22,29,36,44,51,59,66,74,81,88,95,102,109,116],{"id":9,"slug":10,"type":11,"title":12,"subtitle":13,"summary":14,"hero_asset_id":15,"hero_alt_text":16,"reading_time":17,"published_at":18,"updated_at":18,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"72a03bdf-0b92-4f4d-9174-178d6aa0b64d","modernizzazione-legacy-sanitario-event-driven","CAPSULE","Event-Driven Architecture: eventi di dominio senza rendere tutto asincrono","Usare eventi per fatti avvenuti e API sincrone quando serve una risposta immediata.","L'Event-Driven Architecture disaccoppia bounded context attraverso fatti di dominio, ma richiede una scelta consapevole tra sincrono e asincrono.",null,"",8,"2026-08-25T18:17:04.126Z","REVIEWED","NOT_PERFORMED","Software Architecture",{"id":23,"slug":24,"type":11,"title":25,"subtitle":26,"summary":27,"hero_asset_id":15,"hero_alt_text":16,"reading_time":17,"published_at":28,"updated_at":28,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"009c9da8-02a2-4bee-91fd-3e5320230f7e","modernizzazione-legacy-sanitario-hexagonal-ports-adapters","Hexagonal Architecture: Ports & Adapters per servizi realmente sostituibili","Separare il dominio da database, broker, Mirth, PACS, viewer e protocolli esterni.","Ports & Adapters mette il dominio al centro e rende infrastruttura e integrazioni implementazioni sostituibili di contratti espliciti.","2026-08-25T18:15:01.950Z",{"id":30,"slug":31,"type":11,"title":32,"subtitle":33,"summary":34,"hero_asset_id":15,"hero_alt_text":16,"reading_time":17,"published_at":35,"updated_at":35,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"faf9f968-0a57-481f-bc61-d7765a74a12d","modernizzazione-legacy-sanitario-context-map","Context Map: rendere esplicite le relazioni tra i bounded context","Non basta dividere il sistema: bisogna descrivere come i contesti collaborano e chi influenza chi.","La Context Map di DDD documenta relazioni, dipendenze e traduzioni tra bounded context, diventando una guida concreta per integrazioni e migrazione del legacy.","2026-08-25T18:12:08.544Z",{"id":37,"slug":38,"type":11,"title":39,"subtitle":40,"summary":41,"hero_asset_id":15,"hero_alt_text":16,"reading_time":42,"published_at":43,"updated_at":43,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"198691d9-d7aa-4d0f-a18f-47e847809dcd","modernizzazione-legacy-sanitario-bounded-context-data-ownership","Bounded Context e Data Ownership: spezzare davvero il database condiviso","Il confine di un servizio nasce dal dominio e dalla proprietà del dato, non dal numero di tabelle.","DDD e Data Ownership aiutano a separare identità paziente, episodio, letto, ordine e cartella clinica evitando database condivisi e dipendenze SQL tra moduli.",9,"2026-08-25T18:14:30.105Z",{"id":45,"slug":46,"type":11,"title":47,"subtitle":48,"summary":49,"hero_asset_id":15,"hero_alt_text":16,"reading_time":17,"published_at":50,"updated_at":50,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"b03a0217-cd29-4af8-bf11-cc0f9c38033c","modernizzazione-legacy-sanitario-anti-corruption-layer","Anti-Corruption Layer: proteggere il nuovo dominio dal legacy","Tradurre semantica, identificativi e modelli senza importare il debito storico nel nuovo codice.","L'Anti-Corruption Layer isola il modello moderno dai concetti, codici e strutture del legacy, traducendo entrambi i lati attraverso un confine esplicito.","2026-08-25T18:11:24.225Z",{"id":52,"slug":53,"type":11,"title":54,"subtitle":55,"summary":56,"hero_asset_id":15,"hero_alt_text":16,"reading_time":57,"published_at":58,"updated_at":58,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"aeca65ec-7105-4c79-8e06-86c086f9bb5f","modernizzazione-legacy-sanitario-adapter-facade","Adapter e Facade: compatibilità e semplificazione non sono la stessa cosa","Due pattern spesso confusi, entrambi utili quando si mette ordine attorno a un legacy complesso.","Adapter e Facade riducono accoppiamenti diversi: il primo rende compatibili contratti, la seconda offre un'interfaccia più semplice a un sottosistema complesso.",7,"2026-08-25T18:12:42.541Z",{"id":60,"slug":61,"type":11,"title":62,"subtitle":63,"summary":64,"hero_asset_id":15,"hero_alt_text":16,"reading_time":57,"published_at":65,"updated_at":65,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"7cfc14d5-baf3-430c-a66c-03b96b431e39","modernizzazione-legacy-sanitario-strangler-fig","Strangler Fig: sostituire il legacy senza Big Bang","Migrare una capacità alla volta mantenendo il sistema operativo e reversibile.","Lo Strangler Fig consente di sostituire gradualmente un sistema legacy instradando capacità e traffico verso il nuovo fino al completo retirement.","2026-08-25T18:13:50.070Z",{"id":67,"slug":68,"type":11,"title":69,"subtitle":70,"summary":71,"hero_asset_id":15,"hero_alt_text":16,"reading_time":72,"published_at":73,"updated_at":73,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"09f4f7ad-024c-468b-9db3-7435a27066bf","modernizzazione-legacy-sanitario-branch-by-abstraction","Branch by Abstraction: sostituire un componente dietro un contratto stabile","Cambiare implementazione progressivamente senza mantenere per mesi un enorme branch di codice.","Branch by Abstraction introduce un'astrazione stabile davanti a vecchia e nuova implementazione, permettendo sostituzione e rollback controllati nello stesso flusso applicativo.",6,"2026-08-25T18:15:41.242Z",{"id":75,"slug":76,"type":11,"title":77,"subtitle":78,"summary":79,"hero_asset_id":15,"hero_alt_text":16,"reading_time":17,"published_at":80,"updated_at":80,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"a0257ecc-58b5-4cf7-8c05-31785aed3d47","modernizzazione-legacy-sanitario-vertical-slice-migration","Vertical Slice Migration: migrare capacità end-to-end, non strati tecnici","Portare in produzione una funzione completa con UI, API, dominio, dati, integrazioni, sicurezza e osservabilità.","La migrazione per vertical slice riduce il rischio perché sostituisce capacità utilizzabili end-to-end invece di rifare prima tutti i database, poi tutte le API e infine la UI.","2026-08-25T18:16:04.709Z",{"id":82,"slug":83,"type":11,"title":84,"subtitle":85,"summary":86,"hero_asset_id":15,"hero_alt_text":16,"reading_time":57,"published_at":87,"updated_at":87,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"043c431a-dd36-4011-8407-e0aa2f2157a5","modernizzazione-legacy-sanitario-bff-api-gateway","BFF e API Gateway: front door, composizione e Strangler routing","Centralizzare ingresso, sicurezza e composizione senza spostare nel gateway il dominio applicativo.","API Gateway e Backend for Frontend supportano routing Strangler, sicurezza e composizione delle API, ma devono restare sottili e privi di business logic di dominio.","2026-08-25T18:16:41.842Z",{"id":89,"slug":90,"type":11,"title":91,"subtitle":92,"summary":93,"hero_asset_id":15,"hero_alt_text":16,"reading_time":42,"published_at":94,"updated_at":94,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"e7f7808e-a670-4b40-85df-1699f9be6b87","modernizzazione-legacy-sanitario-cqrs-read-model-bff","CQRS, Read Model e BFF: comporre viste senza join tra database","Separare il modello di scrittura dalle esigenze di lettura e costruire viste aggregate senza violare l'ownership dei dati.","CQRS, Read Model, API Composition e BFF permettono UI e reporting ricchi senza accessi SQL diretti tra bounded context.","2026-08-25T18:18:22.546Z",{"id":96,"slug":97,"type":11,"title":98,"subtitle":99,"summary":100,"hero_asset_id":15,"hero_alt_text":16,"reading_time":42,"published_at":101,"updated_at":101,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"2fb56178-4357-4937-997a-3a3a71cf88c5","modernizzazione-legacy-sanitario-transactional-outbox-idempotenza","Transactional Outbox, Inbox e Idempotenza: eventi affidabili","Evitare il buco tra commit del database e pubblicazione del messaggio, gestendo correttamente le rideliveries.","Outbox, Inbox e Idempotenza rendono affidabili i flussi event-driven senza richiedere transazioni distribuite tra database e broker.","2026-08-25T18:17:54.623Z",{"id":103,"slug":104,"type":11,"title":105,"subtitle":106,"summary":107,"hero_asset_id":15,"hero_alt_text":16,"reading_time":17,"published_at":108,"updated_at":108,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"84f9988f-8cd7-4a9e-91e5-55c98ea43803","modernizzazione-legacy-sanitario-saga-process-manager","Saga e Process Manager: coordinare workflow distribuiti senza transazione globale","Gestire processi lunghi tra più bounded context, con stato, timeout e compensazioni esplicite.","Saga e Process Manager coordinano processi che attraversano più servizi quando una singola transazione ACID non può coprire l'intero workflow.","2026-08-25T18:18:46.065Z",{"id":110,"slug":111,"type":11,"title":112,"subtitle":113,"summary":114,"hero_asset_id":15,"hero_alt_text":16,"reading_time":17,"published_at":115,"updated_at":115,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"2ff4758d-b587-481f-9dd7-84dd9e7ed081","modernizzazione-legacy-sanitario-resilience-patterns","Resilience Patterns: timeout, retry, circuit breaker e bulkhead","Un sistema distribuito deve assumere che rete, legacy e dipendenze esterne possano rallentare o fallire.","Timeout, Retry, Circuit Breaker e Bulkhead limitano gli effetti a cascata delle dipendenze lente o indisponibili nelle piattaforme distribuite.","2026-08-25T18:17:32.377Z",{"id":117,"slug":118,"type":11,"title":119,"subtitle":120,"summary":121,"hero_asset_id":15,"hero_alt_text":16,"reading_time":17,"published_at":122,"updated_at":122,"knowledge_status":19,"practical_validation":20,"primary_topic":21},"47855c0d-3e4c-4ac7-9dbc-e5b3d992ab6e","modernizzazione-legacy-sanitario-shadow-dual-run","Shadow e Dual Run: verificare il nuovo sistema prima del cutover","Eseguire il nuovo percorso in parallelo, confrontare gli esiti e spostare l'autorità solo quando le differenze sono comprese.","Shadow e Dual Run riducono il rischio di migrazione confrontando il nuovo comportamento con quello legacy prima di renderlo source of truth.","2026-08-25T18:19:06.753Z",{"slug":124,"title":125,"topic":125,"description":126,"icon":127,"tone":128,"order":129,"count":5,"editorial":4,"latestSlug":10,"latestTitle":12,"latestAssetId":15,"source":6},"modernizzazione-sistemi-legacy","Modernizzazione dei sistemi legacy","Strategie, pattern e tecniche per evolvere sistemi legacy complessi\nin modo progressivo, sicuro e sostenibile, evitando migrazioni Big Bang.","i-lucide-orbit","blue",500,{"data":131},[132],{"id":133,"slug":124,"locale":134,"type":135,"title":125,"subtitle":136,"summary":126,"body":137,"primary_topic":138,"knowledge_status":139,"practical_validation":20,"workflow_status":140,"author_id":141,"published_at":142,"updated_at":142,"review_due_at":15,"canonical_url":16,"seo_title":143,"seo_description":144,"hero_asset_id":15,"reading_time":15,"version":145,"technology_versions":146,"review_frequency_days":15,"parent_content_id":15,"sort_in_parent":147,"hub_entry_status":148,"content_blocks":149,"hero_alt_text":16,"hero_caption":16,"hero_credit":16,"publication_scope":167,"access_level":168,"approved_at":169,"approved_by":141,"review_note":16,"home_enabled":170,"home_slot":171,"home_variant":172,"home_priority":147,"home_eyebrow":15,"home_valid_from":15,"home_valid_to":15,"home_image_asset_id":15,"promotion_kind":173,"sponsor_name":15,"sponsor_url":15,"sponsor_disclosure":174},"776fc737-dda9-4c82-bd56-b6ba0b7148d6","it","HUB","Evolvere sistemi complessi senza Big Bang","La modernizzazione di un sistema legacy non coincide necessariamente con una riscrittura completa. Questo Hub raccoglie strategie architetturali, pattern e tecniche per comprendere il sistema esistente, definire nuovi confini, introdurre componenti sostituibili e migrare progressivamente verso un'architettura più moderna.\nIl percorso attraversa Domain-Driven Design, Anti-Corruption Layer, Hexagonal Architecture, Strangler Fig, Branch by Abstraction, Vertical Slice Migration, BFF e API Gateway, CQRS, architetture event-driven, Outbox\u002FInbox, Saga, resilienza e tecniche di Shadow e Dual Run.","58ba728e-da9d-409d-a6c7-31325e3773a8","NOTE","PUBLISHED","794a9185-136c-4415-ab23-cd144eb5870e","2026-08-25T15:18:51.999Z","Modernizzazione dei sistemi legacy | Capsule Informatiche","Pattern e strategie per modernizzare sistemi legacy:\nDDD, Strangler Fig, Hexagonal Architecture, CQRS,\nEvent-Driven Architecture, resilienza e migrazione incrementale.",2,{},0,"HIDDEN",[150],{"id":151,"type":152,"version":153,"doc":154},"db381440-685b-4cf4-9591-e2bcaf07fc46","rich_text",1,{"type":155,"content":156},"doc",[157,163],{"type":158,"content":159},"paragraph",[160],{"type":161,"text":162},"text","La modernizzazione di un sistema legacy non coincide necessariamente con una riscrittura completa. Questo Hub raccoglie strategie architetturali, pattern e tecniche per comprendere il sistema esistente, definire nuovi confini, introdurre componenti sostituibili e migrare progressivamente verso un'architettura più moderna.",{"type":158,"content":164},[165],{"type":161,"text":166},"Il percorso attraversa Domain-Driven Design, Anti-Corruption Layer, Hexagonal Architecture, Strangler Fig, Branch by Abstraction, Vertical Slice Migration, BFF e API Gateway, CQRS, architetture event-driven, Outbox\u002FInbox, Saga, resilienza e tecniche di Shadow e Dual Run.","PORTAL","ANONYMOUS","2026-08-25T15:18:49.591Z",false,"LATEST","AUTO","EDITORIAL","Sponsorizzato"]