CQRS 및 이벤트 소싱을 사용할 때 내역 데이터를 쿼리하는 방법. 예를 들어, 매출 보고서를 가지고있는 출퇴근 시간 기록 시스템을 구축하는 경우 각 직원의 시간, 지불 비율 및 청구 비율에 대해 쿼리해야합니다. EmployeeID, PayRate 및 EffectiveDate가있는 EMPLOYEE_PAY_RATE 테이블과 ClientID, EmployeeID, Rate 및 EffectiveDate가있는 BILL_RATE 테이블이 있습니다. 이 테이블의 유효 날짜는 기본적으로 실행 기록을 유지하므로 정확하게보고 할 수 있습니다.CQRS 및 이벤트 소싱 쿼리 내역 데이터
우리가 DDD, CQRS 및 Event Sourcing Route를 취하는 경우 어떻게 그러한 보고서를 생성합니까? 같은 방식으로 이벤트 저장소를 쿼리 할 수있는 것과는 다릅니다. Axon과 같은 프레임 워크를 살펴 보았지만보고 관점에서해야 할 일을 수행 할 수 있는지 확실하지 않습니다.
그러나 여러 이벤트가 예상됩니다. 한 해 동안 직원의 청구액은 2 ~ 3 회 변경 될 수 있으며 직원은 1 ~ 2 회 급여 인상을받을 수 있습니다. 또한 보고서 계산은 작업 표 엔터티에서 시간과 날짜를 취하여 모든 데이터를 교차하여 올바르게 계산해야합니다. 여전히 가능합니까? 과거에 나는 SQL로 해왔지만 복잡하지만 빠른 쿼리 였고 메모리에있는 모든 것을 리소스 관점에서 보면 문제가있는 것 같습니다. – jkratz55
@ jkratz55 여러 투영이 왜 필요합니까? 하나는 충분 해 보입니다. –
CQRS와 Event Sourcing을 한번도 해 본 적이없는 개념을 이해하지 못했지만 현재의 구식 시스템에서는 EMPLOYEE, TIMESHEET, EMPLOYEE_PAY_RATE, CLIENT_BILL_RATE 및 PROJECT_ASSIGNMENT 테이블을 함께 결합하여 보고서를 생성합니다. 작업 표에는 주어진 날짜와 프로젝트에 대한 특정 직원의 근무 시간이 있습니다. Bill Rate 및 Pay Rate 테이블에는 유효한 시작 날짜 열이 있으므로 모든 기록 데이터가 있습니다. 이벤트 저장소를 사용하고 이벤트를 재생하는 방법을 시각화 할 수 없다고 생각합니다. – jkratz55