Shadow e Dual Run: verificare il nuovo sistema prima del cutover
Shadow e Dual Run riducono il rischio di migrazione confrontando il nuovo comportamento con quello legacy prima di renderlo source of truth.

ARGOMENTO · TASSONOMIA
Progettazione e organizzazione strutturale dei sistemi software.
16 capsuleShadow e Dual Run riducono il rischio di migrazione confrontando il nuovo comportamento con quello legacy prima di renderlo source of truth.
Saga e Process Manager coordinano processi che attraversano più servizi quando una singola transazione ACID non può coprire l'intero workflow.
CQRS, Read Model, API Composition e BFF permettono UI e reporting ricchi senza accessi SQL diretti tra bounded context.
Outbox, Inbox e Idempotenza rendono affidabili i flussi event-driven senza richiedere transazioni distribuite tra database e broker.
Timeout, Retry, Circuit Breaker e Bulkhead limitano gli effetti a cascata delle dipendenze lente o indisponibili nelle piattaforme distribuite.
L'Event-Driven Architecture disaccoppia bounded context attraverso fatti di dominio, ma richiede una scelta consapevole tra sincrono e asincrono.
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.
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.
Branch by Abstraction introduce un'astrazione stabile davanti a vecchia e nuova implementazione, permettendo sostituzione e rollback controllati nello stesso flusso applicativo.
Ports & Adapters mette il dominio al centro e rende infrastruttura e integrazioni implementazioni sostituibili di contratti espliciti.
DDD e Data Ownership aiutano a separare identità paziente, episodio, letto, ordine e cartella clinica evitando database condivisi e dipendenze SQL tra moduli.
Lo Strangler Fig consente di sostituire gradualmente un sistema legacy instradando capacità e traffico verso il nuovo fino al completo retirement.
Adapter e Facade riducono accoppiamenti diversi: il primo rende compatibili contratti, la seconda offre un'interfaccia più semplice a un sottosistema complesso.
La Context Map di DDD documenta relazioni, dipendenze e traduzioni tra bounded context, diventando una guida concreta per integrazioni e migrazione del legacy.
L'Anti-Corruption Layer isola il modello moderno dai concetti, codici e strutture del legacy, traducendo entrambi i lati attraverso un confine esplicito.
Il Domain-Driven Design non parte da framework, database o microservizi, ma dal problema che il software deve rappresentare. Un'introduzione ai principi fondamentali del DDD: Ubiquitous Language, Bounded Context, Entity, Value Object, Aggregate, Domain Event e isolamento del dominio dall'infrastruttura.