[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fuq1l6v46swoz":3,"$fbzj24xc6lj4i":194},{"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":19,"review_due_at":20,"canonical_url":21,"seo_title":10,"seo_description":12,"hero_asset_id":20,"reading_time":22,"version":23,"technology_versions":24,"review_frequency_days":25,"parent_content_id":26,"sort_in_parent":27,"hub_entry_status":28,"content_blocks":29,"hero_alt_text":21,"hero_caption":21,"hero_credit":21,"publication_scope":184,"access_level":185,"approved_at":186,"approved_by":187,"review_note":21,"home_enabled":188,"home_slot":189,"home_variant":190,"home_priority":191,"home_eyebrow":20,"home_valid_from":20,"home_valid_to":20,"home_image_asset_id":20,"promotion_kind":192,"sponsor_name":20,"sponsor_url":20,"sponsor_disclosure":193},"a0257ecc-58b5-4cf7-8c05-31785aed3d47","modernizzazione-legacy-sanitario-vertical-slice-migration","it","CAPSULE","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.","Il limite della migrazione per strati\nUn programma che pianifica «prima rifacciamo tutti i database, poi tutte le API, poi il frontend» produce lunghi periodi in cui nessuna capability nuova è realmente utilizzabile. Nel frattempo il legacy continua a cambiare e i team lavorano su assunzioni non validate.\nVertical Slice\nUna vertical slice attraversa tutti gli strati necessari a consegnare un caso d'uso: UI o MFE, BFF, application service, domain model, persistence, ACL\u002Fadapter legacy, IAM, audit, osservabilità e test end-to-end. La slice può essere piccola, ma deve essere realmente esercitabile.\nEsempio\nInvece di «rifare l'anagrafica», si può migrare «ricerca paziente per identificativo e apertura scheda». La slice contiene nuova UI, Patient Identity API, accesso EMPI, ACL verso il legacy per i casi non ancora migrati, autorizzazioni e telemetria. Quando è stabile, si passa alla capacità successiva.\nCriteri per scegliere la prima slice\nConfine funzionale comprensibile e testabile.\n\nValore reale per gli utenti ma raggio di impatto gestibile.\n\nDipendenze legacy identificabili.\n\nPossibilità di misurare differenze e rollback.\n\nCapacità che aiuta a creare foundation riutilizzabili senza trasformarsi in un progetto infrastrutturale infinito.\n\nDefinition of Done di una slice di migrazione\nOwner del dato dichiarato.\n\nContratti API\u002Feventi versionati.\n\nSecurity e audit verificati.\n\nCorrelation\u002Ftrace id propagati.\n\nTest funzionali, contract test e smoke E2E.\n\nModalità Shadow\u002FDual Run se necessaria.\n\nRunbook di rollback e metrica di successo.\n\nPiano di rimozione della corrispondente funzione legacy.\n\nIl vantaggio organizzativo\nLa vertical slice costringe a verificare subito l'interazione tra architettura e realtà operativa. Evita che un team produca un dominio elegante ma inutilizzabile perché mancano mapping legacy, permessi, dati o integrazioni.\nRelazione con Strangler Fig\nLa vertical slice definisce cosa consegnare; lo Strangler Fig definisce come spostare progressivamente quella capacità dal vecchio al nuovo. Insieme formano un approccio incrementale molto più controllabile del Big Bang.\n\nUna migrazione è reale quando una capacità nuova può essere usata, osservata, confrontata e — se necessario — riportata indietro senza attendere il completamento dell'intero programma.","58ba728e-da9d-409d-a6c7-31325e3773a8","REVIEWED","NOT_PERFORMED","PUBLISHED","fbbfd4b6-f4c7-4740-94a6-f81eb8fbb1b2","2026-08-25T18:16:04.709Z",null,"",8,3,{},365,"776fc737-dda9-4c82-bd56-b6ba0b7148d6",9,"AVAILABLE",[30,180],{"id":31,"type":32,"version":33,"doc":34},"a655aae2-e706-534f-a22b-4c70372ba169","rich_text",1,{"type":35,"content":36},"doc",[37,45,50,55,59,64,68,73,107,112,162,167,171,176],{"type":38,"attrs":39,"content":41},"heading",{"level":40},2,[42],{"type":43,"text":44},"text","Il limite della migrazione per strati",{"type":46,"content":47},"paragraph",[48],{"type":43,"text":49},"Un programma che pianifica «prima rifacciamo tutti i database, poi tutte le API, poi il frontend» produce lunghi periodi in cui nessuna capability nuova è realmente utilizzabile. Nel frattempo il legacy continua a cambiare e i team lavorano su assunzioni non validate.",{"type":38,"attrs":51,"content":52},{"level":40},[53],{"type":43,"text":54},"Vertical Slice",{"type":46,"content":56},[57],{"type":43,"text":58},"Una vertical slice attraversa tutti gli strati necessari a consegnare un caso d'uso: UI o MFE, BFF, application service, domain model, persistence, ACL\u002Fadapter legacy, IAM, audit, osservabilità e test end-to-end. La slice può essere piccola, ma deve essere realmente esercitabile.",{"type":38,"attrs":60,"content":61},{"level":40},[62],{"type":43,"text":63},"Esempio",{"type":46,"content":65},[66],{"type":43,"text":67},"Invece di «rifare l'anagrafica», si può migrare «ricerca paziente per identificativo e apertura scheda». La slice contiene nuova UI, Patient Identity API, accesso EMPI, ACL verso il legacy per i casi non ancora migrati, autorizzazioni e telemetria. Quando è stabile, si passa alla capacità successiva.",{"type":38,"attrs":69,"content":70},{"level":40},[71],{"type":43,"text":72},"Criteri per scegliere la prima slice",{"type":74,"content":75},"bulletList",[76,83,89,95,101],{"type":77,"content":78},"listItem",[79],{"type":46,"content":80},[81],{"type":43,"text":82},"Confine funzionale comprensibile e testabile.",{"type":77,"content":84},[85],{"type":46,"content":86},[87],{"type":43,"text":88},"Valore reale per gli utenti ma raggio di impatto gestibile.",{"type":77,"content":90},[91],{"type":46,"content":92},[93],{"type":43,"text":94},"Dipendenze legacy identificabili.",{"type":77,"content":96},[97],{"type":46,"content":98},[99],{"type":43,"text":100},"Possibilità di misurare differenze e rollback.",{"type":77,"content":102},[103],{"type":46,"content":104},[105],{"type":43,"text":106},"Capacità che aiuta a creare foundation riutilizzabili senza trasformarsi in un progetto infrastrutturale infinito.",{"type":38,"attrs":108,"content":109},{"level":40},[110],{"type":43,"text":111},"Definition of Done di una slice di migrazione",{"type":74,"content":113},[114,120,126,132,138,144,150,156],{"type":77,"content":115},[116],{"type":46,"content":117},[118],{"type":43,"text":119},"Owner del dato dichiarato.",{"type":77,"content":121},[122],{"type":46,"content":123},[124],{"type":43,"text":125},"Contratti API\u002Feventi versionati.",{"type":77,"content":127},[128],{"type":46,"content":129},[130],{"type":43,"text":131},"Security e audit verificati.",{"type":77,"content":133},[134],{"type":46,"content":135},[136],{"type":43,"text":137},"Correlation\u002Ftrace id propagati.",{"type":77,"content":139},[140],{"type":46,"content":141},[142],{"type":43,"text":143},"Test funzionali, contract test e smoke E2E.",{"type":77,"content":145},[146],{"type":46,"content":147},[148],{"type":43,"text":149},"Modalità Shadow\u002FDual Run se necessaria.",{"type":77,"content":151},[152],{"type":46,"content":153},[154],{"type":43,"text":155},"Runbook di rollback e metrica di successo.",{"type":77,"content":157},[158],{"type":46,"content":159},[160],{"type":43,"text":161},"Piano di rimozione della corrispondente funzione legacy.",{"type":38,"attrs":163,"content":164},{"level":40},[165],{"type":43,"text":166},"Il vantaggio organizzativo",{"type":46,"content":168},[169],{"type":43,"text":170},"La vertical slice costringe a verificare subito l'interazione tra architettura e realtà operativa. Evita che un team produca un dominio elegante ma inutilizzabile perché mancano mapping legacy, permessi, dati o integrazioni.",{"type":38,"attrs":172,"content":173},{"level":40},[174],{"type":43,"text":175},"Relazione con Strangler Fig",{"type":46,"content":177},[178],{"type":43,"text":179},"La vertical slice definisce cosa consegnare; lo Strangler Fig definisce come spostare progressivamente quella capacità dal vecchio al nuovo. Insieme formano un approccio incrementale molto più controllabile del Big Bang.",{"id":181,"type":182,"version":33,"text":183},"e7a916fc-17f6-51b7-a8d9-e22d99da8fe4","callout","Una migrazione è reale quando una capacità nuova può essere usata, osservata, confrontata e — se necessario — riportata indietro senza attendere il completamento dell'intero programma.","PORTAL","ANONYMOUS","2026-08-25T18:16:03.396Z","794a9185-136c-4415-ab23-cd144eb5870e",false,"LATEST","AUTO",0,"EDITORIAL","Sponsorizzato",{"sources":195,"secondaryTopics":196,"tags":197,"primaryTopic":198,"technologies":202},[],[],[],[199],{"id":14,"name":200,"slug":201},"Software Architecture","software-architecture",[]]