[MSA]CQRS

golony·2022년 5월 9일
0

개발

목록 보기
9/23

CQRS

개요

  • Command and Query Responsibility Segregation
  • 직역: 커맨드와 쿼리로 책임을 분리한다.
  • Command: Create, Update, Delete 작업
  • Query: Read 작업

읽기 작업와 CUD 작업을 위한 모델을 분리

음...?

다양한 수준에서 분리할 수 있다.

  • 모델을 분리
  • DB를 분리

모델 분리

보통은 CUD 작업에서 여러 엔티티가 병합된 복잡한 모델을 처리하고, R 작업은 간단한 경우가 많다. (고 한다. 금융 개발자로써는 공감하기 어렵다...)

이때, CUD 작업(Command)을 위한 모델과, R 작업(Query)을 위한 모델을 분리해, 복잡도가 상승하는 걸 줄여보다는 접근방법

DB를 분리

정리하면서 찾아본 예시는 RDB와 NoSQL을 조합하는 경우가 많았다.
DB 수준에서의 분산처리를 위해 Master-Slave 구조를 고려하고 있다면 RDB-NoSQL 조합도 괜찮을 것 같다는 생각이 들었다.
(물론 금융 도메인은 동시성과 정합성이 최우선 고려대상이기 때문에, 도입하려면 동기화방법에 대해 고민해야 할 부분이 많다.)

참고자료

profile
더 나은 세상으로 나아가는 서비스를 만들고 싶습니다.

0개의 댓글