Condividi tramite


Affrontare la complessità aziendale in un microservizio con DDD e modelli CQRS

Suggerimento

Questo contenuto è un estratto dell'eBook, Architettura di microservizi .NET per applicazioni .NET containerizzati, disponibile in documentazione .NET o come PDF scaricabile gratuitamente leggibile offline.

Architettura di Microservizi .NET per Applicazioni .NET Containerizzate miniatura della copertina dell'eBook.

Progettare un modello di dominio per ogni microservizio o contesto delimitato che riflette la comprensione del dominio aziendale.

Questa sezione è incentrata sui microservizi più avanzati implementati quando è necessario affrontare sottosistemi complessi o microservizi derivati dalla conoscenza di esperti di dominio con regole business in continua evoluzione. I modelli di architettura usati in questa sezione sono basati sugli approcci DDD (Domain Driven Design) e Command and Query Responsibility Segregation (CQRS), come illustrato nella figura 7-1.

Diagramma che confronta modelli di architettura esterni e interni.

Differenza tra architettura esterna: modelli di microservizio, gateway API, comunicazioni resilienti, pub/sub e così via, e architettura interna: basati su dati/CRUD, modelli DDD, inserimento delle dipendenze, più librerie e così via.

Figura 7-1. Architettura di microservizi esterni e modelli di architettura interna per ogni microservizio

Tuttavia, la maggior parte delle tecniche per i microservizi basati sui dati, ad esempio come implementare un servizio API Web core ASP.NET o come esporre metadati Swagger con Swashbuckle o NSwag, sono applicabili anche ai microservizi più avanzati implementati internamente con i modelli DDD. Questa sezione è un'estensione delle sezioni precedenti, perché la maggior parte delle procedure illustrate in precedenza si applicano anche qui o per qualsiasi tipo di microservizio.

Questa sezione fornisce prima informazioni dettagliate sui modelli CQRS semplificati usati nell'applicazione di riferimento eShopOnContainers. Successivamente, si otterrà una panoramica delle tecniche DDD che consentono di trovare modelli comuni che è possibile riutilizzare nelle applicazioni.

DDD è un argomento di grandi dimensioni con un set completo di risorse per l'apprendimento. È possibile iniziare con libri come Domain-Driven Design di Eric Evans e materiali aggiuntivi di Vaughn Vernon, Jimmy Nilsson, Greg Young, Udi Dahan, Jimmy Bogard e molti altri esperti DDD/CQRS. Ma soprattutto è necessario provare a imparare a applicare tecniche DDD dalle conversazioni, alle lavagne e alle sessioni di modellazione del dominio con gli esperti nel dominio aziendale concreto.

Risorse aggiuntive

DDD ( progettazioneDomain-Driven)
Libri DDD
Formazione DDD