«cqrs» 태그된 질문

명령 쿼리 책임 분리 디자인 패턴

2
Command 자체에서 메소드를 처리하는 대신 클래스 CommandHandler를 Handle ()로 분리하는 이유
다음 과 같이 S # arp 아키텍처를 사용하여 CQRS 패턴의 일부를 구현 했습니다. 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 년 동안 Domain Driven Design에 대해 읽었으며, 일상 업무에 몇 가지 개념을 조심스럽게 소개하거나 최소한 Domain Driven Design 내에서 정기적으로 수행하는 작업에 대한 계획을 세우고 있습니다. 도메인 개체가 쓰기 목적으로 만 사용된다는 이벤트 소싱 및 CQRS (Command Query Responsibility Segregation)에 대한 자세한 내용을 읽은 결과로 특히 시작하기 …

2
CQRS + 이벤트 소싱 : (정확한가) 명령은 일반적으로 지점 간 통신되고 도메인 이벤트는 pub / sub를 통해 통신됩니까?
나는 기본적으로 CQRS 의 개념 과 관련 개념에 대해 머리를 감싸려고합니다 . CQRS가 메시징과 이벤트 소싱을 반드시 통합 할 필요는 없지만, 이러한 개념을 결합한 많은 예제 / 블로그 게시물에서 볼 수 있듯이 좋은 조합으로 보입니다. 무언가에 대한 상태 변경에 대한 유스 케이스가 주어지면 (SO에 대한 질문을 업데이트하는 것과 같이) 다음 …

2
DDD가없고 또는없는 ESQ없는 CQRS-쓰기 모델이란 무엇이며 읽기 모델은 무엇입니까?
내가 이해하는 한, CQRS의 기본 아이디어는 명령과 쿼리를 처리하기위한 두 가지 데이터 모델이 있다는 것입니다. 이를 "모델 쓰기"및 "모델 읽기"라고합니다. Twitter 응용 프로그램 복제의 예를 생각해 봅시다. 명령은 다음과 같습니다. 사용자는 스스로 등록 할 수 있습니다. CreateUserCommand(string username)방출UserCreatedEvent 사용자는 다른 사용자를 팔로우 할 수 있습니다. FollowUserCommand(int userAId, int userBId)방출UserFollowedEvent 사용자는 …
11 cqrs  read-model 

1
CQRS + 이벤트 소싱 아키텍처에서 Add / Create * 명령을 처리하는 방법
Event Sourcing과 함께 CQRS 패턴을 사용하여 첫 번째 응용 프로그램을 구현하고 싶습니다. 골재 뿌리 생성이 올바르게 처리되어야하는지 궁금합니다. 누군가 CreateItem 명령을 보낸다고 가정 해 봅시다. 어떻게 처리해야합니까? ItemCreated 이벤트를 어디에 저장해야합니까? 새로운 아이템의 첫 번째 이벤트로? 아니면 모든 항목을 집계하고 해당 이벤트 목록이 ItemCreated 이벤트로만 구성된 일종의 ItemList 엔티티가 있어야합니까? …

3
이벤트를 재생할 때 CRQS의 부작용을 처리하는 방법은 무엇입니까?
CQRS에서는 버그를 쉽게 수정할 수 있다고 말하면 이벤트를 재배치 한 다음 재생하면됩니다. 그러나 이벤트 중 하나만 수행하면 이벤트를 재생하는 경우 해당 항목이 두 번 배송 될 경우 제어 시스템에없는 외부 시스템으로 인해 고객에게 "항목을 배송"해야하는 경우가 있습니다. 어떻게 해결합니까?

2
CQRS에서 새로운 집계 루트를 만드는 방법은 무엇입니까?
cqrs 아키텍처에서 어떻게 새로운 집계 루트를 만들어야합니까? 이 예에서는 첫 번째 AR1에 대한 참조를 보유하는 새로운 집계 루트 AR2를 작성하려고합니다. AR1 방법을 시작점으로 사용하여 AR2를 만들고 있습니다. 지금까지 몇 가지 옵션이 있습니다. AR1의 내부 메소드는 리포지토리에 액세스하는 도메인 서비스를 사용 하여이 객체를 createAr2RootOpt1호출 new AR2()하여 dbmedia에 ly 저장할 수 있습니다. …

3
DRY 또는 Command-Query-Separation을 타협해야합니까?
최근에는 명령 및 쿼리 방법 인 방법을 리팩토링했습니다. 하나의 명령 방법과 하나의 쿼리 방법으로 분리 한 후 코드에서 명령을 호출 한 다음 쿼리에서 값을 얻는 여러 위치가 있음을 알았습니다. 이것은 DRY 원칙을 위반하는 것처럼 보입니다. 그러나 해당 공통 코드를 메소드로 랩핑하는 경우 해당 메소드는 명령과 쿼리입니다. 이것이 허용됩니까?

2
명령 핸들러 및 DDD
쿼리 서비스를 사용하여 데이터를 가져오고 명령 서비스를 사용하여 명령을 보내는 ASP.NET MVC 응용 프로그램이 있습니다. 내 질문은 명령 부분에 관한 것입니다. 요청이 들어 오면 명령 서비스는 명령을 지정된 명령 핸들러로 라우트하는 명령 디스패처를 사용합니다. 이 명령 핸들러는 먼저 comand의 유효성을 검사하고 모든 것이 허용 가능한 경우 명령을 실행합니다. 구체적인 예 …

4
생성자에서 또는 첫 번째 이벤트를 적용 할 때 CQRS + ES의 오브젝트를 어디에서 완전히 초기화해야합니까?
OOP 커뮤니티에는 클래스 생성자가 객체를 부분적으로 또는 완전히 초기화되지 않은 상태로 두지 말아야한다는 광범위한 동의가있는 것으로 보입니다. "초기화"는 무엇을 의미합니까? 대략적으로 말하자면 새로 생성 된 객체를 모든 클래스 불변 값이 유지되는 상태로 만드는 원자 프로세스입니다. 객체에 대해 가장 먼저 발생해야하며 (객체 당 한 번만 실행해야 함) 초기화되지 않은 객체를 잡을 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.