엔터티의 상태 변경 게시를위한 모범 사례

영감

다음 모델이 있습니다.

public class Team {
    public Guid Id {get; set;}
    public string Name {get; set;}
    public string League {get; get;}
    public int Rating {get; set;}
}

시스템에 새 팀을 만들면 이벤트 TeamCreated를 서비스 버스에 게시합니다 .

{
    "MessageId": "33909eaf-56a1-4467-a01a-64b94f10490c"
    "MessageType": "TeamCreated",
    "CreationDate": "20-01-2016",
    "Payload":  {
        "Id": "11111www-56a1-4467-a01a-64b94f000111",
        "Name": "Toronto Maple Leafs",
        "League": "NHL NorthEast",
        "Rating": 100
    }
}

다음으로이 항목이 다음과 같이 수정되었습니다.

{
    "MessageId": "33909eaf-56a1-4467-a01a-64b94f10490c"
    "MessageType": "TeamUpdated",
    "CreationDate": "20-01-2016",
    "Payload":  {
        "Id": "11111www-56a1-4467-a01a-64b94f000111",
        "Name": "Toronto Maple Leafs",
        "League": "NHL NorthEast",
        "Rating": 50
    }
}

보시다시피, 그는 업데이트 된 메시지는 팀의 등급 인 변경된 속성뿐만 아니라 모든 속성의 값을 여전히 유지합니다.

내 모델은 실제 시스템에서 50 개 이상의 속성을 가지고 있으며 업데이트 될 때 각 속성에 대해 별도의 이벤트를 만들고 싶지 않습니다. 특히 하나의 업데이트에서 둘 이상의 속성이 변경된 경우 일 수 있기 때문입니다.

이벤트 소싱 아키텍처에서이 시나리오에 대해 정의 된 패턴이 있습니까?

VoiceOfUnreason

일반적인 대답은 CRUD 이벤트를 버리고 대신 유비쿼터스 언어를 사용하여 변경 사항을 설명하는 것입니다.

어느 정도까지는 이것은 단지 디커플링 연습 일뿐입니다. 우리는 오늘날 엔터티의 상태를 구현 한 방식에 너무 투자하지 않고 "무슨 일이 일어 났는지"를 설명하려고합니다.

예를 선택하려면; '잎이 라스베가스로 이동해야했다. 유비쿼터스 언어로 어떻게 설명할까요? 우리는 아마도 팀이 재배치 (홈 도시, 경기장 변경), 재배치 (리그 변경), 브랜드 변경 (팀 이름, 로고 변경), 판매 가능성 (소유권 그룹 변경) 이라고 말할 수 있습니다 . 따라서이 데이터를 하나의 TeamUpdated이벤트 로 압축하는 대신 논리적으로 그룹화 된 데이터가 적절한 이벤트를 공유하는 여러 이벤트로 표시되는 변경 사항을 볼 수 있습니다.

엔터티를 다시 수화하면 이벤트 페이로드의 데이터를 인식하고 이전에 기록 된 기록을 반영하기 위해 자체 (비공개) 상태를 변경하는 방법을 이해해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

엔터티 상태 저장-모범 사례

분류에서Dev

React JSX 구성 요소의 상태를 동적으로 변경합니다. 모범 사례 및 이유

분류에서Dev

함수 컴포넌트 React에서 상태를 정의하는 모범 사례

분류에서Dev

Windows PATH / 환경 변수 관리를위한 모범 사례?

분류에서Dev

C ++ 상속을위한 모범 사례

분류에서Dev

MVC 엔터티 분리 모범 사례

분류에서Dev

읽기 상태를 저장 / 확인하는 모범 사례

분류에서Dev

WHERE 절의 상수 값에 대한 모범 사례?

분류에서Dev

상위 추상 객체의 엔티티 프레임 워크 변경 상태

분류에서Dev

NodeJ의 콜백 매개 변수에 대한 모범 사례

분류에서Dev

뷰 엔터티를 검색하여 테이블 엔터티를 반환하는 모범 사례

분류에서Dev

특별한 종류의 Asp.Net Mvc 애플리케이션에서 사용자 상태를 유지하기위한 모범 사례

분류에서Dev

Perforce에서 특정 파일의 변경을 방지하기위한 모범 사례

분류에서Dev

ReactJS : 소품 및 상태 모범 사례

분류에서Dev

Struts2 : .properties 파일에 대한 모범 사례 및 최상의 위치

분류에서Dev

플래시 게임의 성능을 향상시키기 위해 hitTest 호출을 줄이는 모범 사례

분류에서Dev

React Hooks에서 상수 처리를위한 모범 사례

분류에서Dev

Windows 파티션 마운트를위한 모범 사례

분류에서Dev

대화 상자에서 구성 요소를 재사용하기위한 각도, 재료의 모범 사례?

분류에서Dev

ggplot 모양의 범례를 변경하는 방법

분류에서Dev

UI 라우터 상태 변경시 상위 범위 업데이트

분류에서Dev

상수 데이터를 사용하여 모범 사례에 대응

분류에서Dev

범례의 모양 (텍스트 색상, 선 너비 등)을 변경하려면 어떻게해야합니까?

분류에서Dev

페이지의 지속적으로 변화하는 영역을 표시하기위한 Angular 모범 사례

분류에서Dev

인터넷 가용성 처리를위한 모범 사례

분류에서Dev

const 클래스 데이터 처리를위한 모범 사례

분류에서Dev

변경 테이블 행을 유지하기위한 모범 사례

분류에서Dev

클릭시 모든 요소의 데이터 상태 변경

분류에서Dev

자식 화살표 함수, React를 사용하여 부모의 상태 변경

Related 관련 기사

  1. 1

    엔터티 상태 저장-모범 사례

  2. 2

    React JSX 구성 요소의 상태를 동적으로 변경합니다. 모범 사례 및 이유

  3. 3

    함수 컴포넌트 React에서 상태를 정의하는 모범 사례

  4. 4

    Windows PATH / 환경 변수 관리를위한 모범 사례?

  5. 5

    C ++ 상속을위한 모범 사례

  6. 6

    MVC 엔터티 분리 모범 사례

  7. 7

    읽기 상태를 저장 / 확인하는 모범 사례

  8. 8

    WHERE 절의 상수 값에 대한 모범 사례?

  9. 9

    상위 추상 객체의 엔티티 프레임 워크 변경 상태

  10. 10

    NodeJ의 콜백 매개 변수에 대한 모범 사례

  11. 11

    뷰 엔터티를 검색하여 테이블 엔터티를 반환하는 모범 사례

  12. 12

    특별한 종류의 Asp.Net Mvc 애플리케이션에서 사용자 상태를 유지하기위한 모범 사례

  13. 13

    Perforce에서 특정 파일의 변경을 방지하기위한 모범 사례

  14. 14

    ReactJS : 소품 및 상태 모범 사례

  15. 15

    Struts2 : .properties 파일에 대한 모범 사례 및 최상의 위치

  16. 16

    플래시 게임의 성능을 향상시키기 위해 hitTest 호출을 줄이는 모범 사례

  17. 17

    React Hooks에서 상수 처리를위한 모범 사례

  18. 18

    Windows 파티션 마운트를위한 모범 사례

  19. 19

    대화 상자에서 구성 요소를 재사용하기위한 각도, 재료의 모범 사례?

  20. 20

    ggplot 모양의 범례를 변경하는 방법

  21. 21

    UI 라우터 상태 변경시 상위 범위 업데이트

  22. 22

    상수 데이터를 사용하여 모범 사례에 대응

  23. 23

    범례의 모양 (텍스트 색상, 선 너비 등)을 변경하려면 어떻게해야합니까?

  24. 24

    페이지의 지속적으로 변화하는 영역을 표시하기위한 Angular 모범 사례

  25. 25

    인터넷 가용성 처리를위한 모범 사례

  26. 26

    const 클래스 데이터 처리를위한 모범 사례

  27. 27

    변경 테이블 행을 유지하기위한 모범 사례

  28. 28

    클릭시 모든 요소의 데이터 상태 변경

  29. 29

    자식 화살표 함수, React를 사용하여 부모의 상태 변경

뜨겁다태그

보관