2017-10-22 13 views
0

SQL 데이터 모델에 테이블 A와 테이블 B가 있습니다. 테이블 A에는 테이블 B에 대한 외래 키가 있습니다. 이제 CRUD 아키텍처를 CQRS로 마이그레이션하려고합니다. 당신은 당신은 당신의 APPEND 로그에 기록 CQRS에서 외부 키 읽기 측 오류를 어떻게 처리합니까?

  • 의 새 항목을 유지하고
  • 읽기 측이 그것을 집어 들고 당신의 상태를 업데이트를 처리하고의 삽입에 실패하는 명령을 수신

    • : 다음과 같은 시나리오를 상상해 데이터베이스에서

    이 경우, 쓰기 측과 읽기 측은 일관성을 유지하지 못합니다. CQRS에서 읽기 측 제약 조건을 어떻게 처리합니까? 대신 쓰기 측면에서 유효성 검사를 수행해야합니까?

  • 답변

    1

    난 당신이에서 영감을 얻을 수 있다고 생각 :

    How to handle set based consistency validation in CQRS?

    그것의 짧은하는 집계가 다른 집계에 의해 생성 될 필요가있는 새가,의는 C (창조자)을 가정 해 봅시다. 이 경우 C는 모든 A의 ID 목록을 보유하므로 뷰 모델 대신 집계 레벨에서 검사를 수행 할 수 있습니다.

    질문이 더 일반적이고 "보기 모델 업데이트 실패를 처리하는 방법"을 묻는다면 실제로 달라집니다. 디자인 문제 (예 : 잘못된 일련의 이벤트, 사전 조건 또는 불변 수표의 부재), 버그 또는 기타 문제 일 수 있습니다. 일반적으로 내가 수행하는 작업은 자동 치료가없는 경우 해당 엔티티를 잠그고 수동 개입이 필요한 엔티티 목록으로 전송하는 것입니다.