Запитання з тегом «cqrs»

Шаблон дизайну сегментації відповідальності за запит відповідальності

2
Чому відокремлюємо клас CommandHandler з Handle (), а не метод обробки в Command себе
У мене є частина CQRS-схеми, реалізованої за допомогою архітектури S # arp : public class MyCommand { public CustomerId { get; set; } // some other fields } public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult> { Handle(MyCommand command) { // some code for saving Customer entity return CommandResult.Success; } } Цікаво, …

3
Чи повинні об'єкти домену в дизайні, керованому доменом, лише для запису?
Я читав про дизайн, керований доменом майже два роки, і обережно вводив деякі поняття в свою щоденну роботу або принаймні створював плани того, як все, що я роблю регулярно, можна робити в рамках дизайну, керованого доменом. Один висновок, до якого я почав звертатися, особливо у відповідь на читання детальніше про …

2
CQRS + Sourcing подій: (чи правильно це) Команди, як правило, передаються «точка-точка», тоді як події домену передаються через pub / sub?
Я в основному намагаюся обернути голову навколо концепції CQRS та пов'язаних з цим понять. Хоча CQRS не обов'язково включає в себе повідомлення та обмін подіями, це здається гарною комбінацією (як це можна побачити з великою кількістю прикладів / блогових постів, що поєднують ці поняття) Враховуючи випадки використання для зміни стану …

2
CQRS без DDD і без (або з?) ES - що таке модель запису і що читається модель?
Наскільки я розумію, великою ідеєю CQRS є наявність двох різних моделей даних для обробки команд та запитів. Вони називаються "модель запису" та "модель читання". Розглянемо приклад клонування програми Twitter. Ось команди: Користувачі можуть зареєструватися. CreateUserCommand(string username)випускаєUserCreatedEvent Користувачі можуть стежити за іншими користувачами. FollowUserCommand(int userAId, int userBId)випускаєUserFollowedEvent Користувачі можуть створювати повідомлення. …
11 cqrs  read-model 

1
Як слід додати / створити * команди в CQRS + Sourcing архітектурі
Я хочу реалізувати свою першу заявку за допомогою шаблону CQRS разом із пошуком подій. Мені цікаво, як зі створенням сукупних коренів слід правильно поводитися. Скажімо, хтось надсилає команду CreateItem. Як з цим поводитися? Де подію ItemCreate слід зберігати? Як перша подія нового предмета? Або я повинен мати якусь сутність ItemList, …

2
Обробники команд та DDD
У мене є програма ASP.NET MVC, яка використовує сервіс запитів для отримання даних та службу команд для відправки команд. Моє запитання щодо командної частини. Якщо надходить запит, служба команд використовує диспетчер команд, який направить команду до призначеного обробника команд. Цей обробник команд попередньо перевіряє команду, і якщо все прийнятно, він …

3
Як поводитися з побічними ефектами в CRQS під час відтворення подій?
Кажуть, що в CQRS виправити помилку легко, ви просто перерозподіліть і потім повторно відтворюєте події. Але що робити, якщо одна з подій повинна призвести до того, що зовнішня система, яка не перебуває у вашому контролі, "відправить товар" замовнику, якщо ви просто повторите події, предмет буде доставлений двічі. Як ви вирішуєте …

2
Як створити новий агрегатний корінь у CQRS?
Як нам створити нові сукупні корені в архітектурі cqrs? У цьому прикладі я хочу створити новий сукупний корінь AR2, який має посилання на перший AR1. Я створюю AR2, використовуючи метод AR1 як вихідну точку. Поки що я бачу кілька варіантів: Метод всередині AR1 createAr2RootOpt1я міг викликати new AR2()та зберегти цей …

3
Мені доводиться йти на компроміс: DRY або Command-Query-Separation?
Нещодавно я переробляв метод, який був і командним, і методом запитів. Розділивши його на один метод команд та один метод запиту, я виявив, що в коді зараз є кілька місць, куди я викликаю команду, а потім отримую значення з запиту, що здається порушенням принципу DRY. Але якби я перетворив цей …

4
Де об'єкт в CQRS + ES повинен бути повністю ініціалізований: в конструкторі або при застосуванні першої події?
У спільноті OOP, як видається, існує широка думка, що конструктор класів не повинен залишати об'єкт частково або навіть повністю неініціалізованим. Що я маю на увазі під "ініціалізацією"? Грубо кажучи, атомний процес, який приводить новостворений об'єкт у стан, у якому тримаються всі його класові інваріанти. Це має бути першим, що трапляється …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.