Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. 복잡성 증가:

    • 읽기와 쓰기 모델을 별도로 설계하고 구현해야 하므로 개발 및 유지보수 비용이 증가함.
    • 데이터 동기화가 까다로울 수 있음(Eventual Consistency).
  2. 개발 및 테스트 비용 증가:

    • 두 가지 모델과 관련 로직을 모두 테스트해야 하므로 더 많은 시간과 리소스가 필요함.
  3. 지연된 일관성:

    • 쓰기 작업 후 읽기 모델에 반영되기까지 지연(Latency)이 있을 수 있음(Eventual Consistency 모델 적용 시).


여기서는 상태있는 서비스개발과 CQRS둘다 사용되었으며~ 이 방식이 모든문제를 해결하는것이 아닌 상태없는 CRUD가 분명 대부분의 문제를 해결할수 있습니다.

장단점을 계속 비교하는것도 이것이 만능방식은 아니며 이러한 개발복잡성을 줄여주기위해

서비스개발에 CQRS의 개념을 일부 채택하였습니다. 

우리의 대부분 도메인모델을 CRUD로 해결할수 있지만~ 그 한계로인해 CQRS로 해결해야는 부분이 있을수 있습니다.


AKKA가 액터모델에 CQRS를 위해 지원하는 영속 장치는 다음과같습니다.

...

모델의 Value 변화에따른 이벤트 버전관리는 제외 되었으며 CQRS 완전한 컨셉은 PersistentDurableStateActor 를 통해 확인할수 있습니다.

...

- https://velog.io/@ehdrms2034/%EC%B9%B4%ED%94%84%EC%B9%B4-%EC%8A%A4%ED%8A%B8%EB%A6%BC%EC%A6%88-DSL-%EA%B0%9C%EB%85%90
- https://breezymind.com/kafka-streams-basic/


CQRS와 영속성은 다른 컨셉으로  복잡한 도메인을 처리하기위한 CQRS의 기법설명은 여기서 제외되었으며 정밀기법은 다음을 참고합니다.