CreateStockItem
- EventConsumer přijme externí událost ProductCreatedEvent a uloží ji do tabulky Inbox v databázi StockDB.
- InboxProcessor pravidelně čte nové záznamy z Inboxu, transformuje událost na příkaz CreateStockItemCommand a předává ho handleru.
- CreateStockItemHandler:
- Zkontroluje, zda položka již existuje.
- Pokud ne, vytvoří pomocí
StockItemAggregatemetodouCreatepoložku na základě doménových pravidel definovaných agregátem.- SKU a Variant nesmí nabývat prázdných hodnot
- SKU musí odpovídat regexu
(^[a-zA-Z]{3}-\d{3,8}$) - Variant musí mít maximální délku 50 znaků
- V rámci jedné transakce uloží novou položku do tabulky
StockItemsa zároveň vygeneruje událostStockItemCreatedEvent, kterou uloží do tabulkyOutbox.
- OutboxProcessor čte nové události z Outboxu a publikuje je do event systému
View
Pokud view nenačítá, refreshujte, prosím, obrazovku