Zvládnutí firemní složitosti v mikroslužbě pomocí vzorů DDD a CQRS

Navrhovat doménový model pro každou mikroslužbu nebo ohraničovaný kontext, který odráží pochopení obchodní domény.

Tato část se zaměřuje na pokročilejší mikroslužby, které implementujete, když potřebujete řešit složité subsystémy, nebo mikroslužby odvozené ze znalostí odborníků na domény s neustále se měnícími obchodními pravidly. Vzory architektury používané v této části jsou založené na návrhu řízeného doménou (DDD) a přístupu CQRS (Command and Query Responsibility Segregation) (CQRS), jak je znázorněno na obrázku 7-1.

Diagram porovnávající vzory externí a interní architektury

Rozdíl mezi externí architekturou: vzory mikroslužeb, brány rozhraní API, odolná komunikace, pub/sub atd. a interní architektura: řízené daty / CRUD, vzory DDD, injektáž závislostí, více knihoven atd.

Obrázek 7–1. Porovnání architektury externích mikroslužeb a interních vzorů architektury pro jednotlivé mikroslužby

Většina technik pro mikroslužby řízené daty, jako je například implementace služby webového rozhraní API ASP.NET Core nebo jak zveřejnit metadata Swaggeru pomocí Swashbucklu nebo NSucklu, se ale vztahuje i na pokročilejší mikroslužby implementované interně pomocí vzorů DDD. Tato část je rozšířením předchozích částí, protože většina dříve vysvětlených postupů platí také tady nebo pro jakýkoli druh mikroslužby.

Tato část nejprve obsahuje podrobnosti o zjednodušených vzorech CQRS používaných v referenční aplikaci eShopOnContainers. Později získáte přehled o technikách DDD, které vám umožní najít běžné vzory, které můžete opakovaně používat ve svých aplikacích.

DDD je velké téma s bohatou sadu prostředků pro výuku. Můžete začít s knihami, jako je Domain-Driven Design od Erica Evanse, a dalšími materiály od V posudků, Venina Nilssona, Grega Younga, Udi Dahana, Sédarda a mnoha dalších odborníků na DDD/CQRS. Většinu ze všech se ale musíte pokusit naučit, jak používat techniky DDD z konverzací, tabule a relací modelování domén s odborníky ve vaší konkrétní obchodní oblasti.

Další zdroje informací

DDD (návrh řízený doménou)
Knihy DDD
Trénování DDD