티스토리 뷰

연습

CQRS/CDC Opening

onaeonae1 2024. 8. 26. 21:35

요약

CDC = Change Data Capture

CQRS 를 구현하기 위한 방법 중 하나로 접근하면 됨

 

 

배경)

각자 DB를 가지고 있는 서비스들이 존재하는 MSA의 서비스를 생각해보자

만약 이들로부터 통합된 어떤 View 를 제공해야 한다면 어떻게 해야할까?

 

목표)

서비스 개발자들은 통합된 View 를 위해서 각 서비스의 코드에 어떤 변화도 할 필요가 없어야 한다.

DB의 변화(테이블 변경이든 레코드 변경이든)를 최대한 자동으로 감지, 전달해야 한다.

 

방법1)

어떤 BFF 를 두고 그 쪽에서 모든 서비스들로부터 물어와 주거나 Caching 을 극도로 활용하는 방법을 생각해볼 수 있다.

 

근데 이건 한계가 명확하다.

1. 누군가 이 BFF와 Caching 을 맡아서 처리해야하고,

 -> 각 서비스에서 아무리 이벤트를 발생시켜도 이 쪽에서 코드 변경이 없으면 View에는 반영될 수 없다.

 

2. 모든 서비스에서는 DB의 변화(구조 변경이든 레코드 변경이든)를 BFF 혹은 캐싱 쪽으로 전달해야 한다.

 -> ORM 의 윗단에 event 를 전달하는 코드를 만들던가, DB에 Event 처리를 해주던가 해야함

 

당연히 추가로 노가다가 필요하고 운영하는 과정에서 에러가 터질 것임을 예측할 수 있다.

 

앞서 제시한 목표를 달성하는 아름다운 방법이 없을까? 다행히도 있다. 그건 바로 CDC다.

 

이에 대한 보충 설명 및 자세한 설명은 주말에 작성하도록 하겠다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함