지금까지 Axon Framework의 CommandGateway & Event Sourcing, EventGateway, QueryGateway, Snapshot, State Stored Aggregate에 대해서 '코끼리 냉장고 넣기'서비스를 개발하면서 배워 봤습니다. 이제 마지막으로 Event Replay를 이용하여 조회DB 데이터를 복구 하는 방법을 실습해 보겠습니다. Event Replay Controller 추가 package 'org.axon.controller'에 'ReplayEventsController' class를 추가 합니다. 두개의 API가 추가 됩니다. ReplayEventsController: 지정한 Event Handler에 대해 특정 일시 이후의 Event만 Replay함 r..
State Stored Aggregate는 Event Sourcing을 하지 않고 물리적 DB에 데이터를 직접 CUD(Create, Update, Delete)할 때 사용하는 Aggregate입니다. 일반 Aggregate가 Event Replay, Event 발행, Event Store에 Event 추가를 하는 반면, State Stored Aggregate는 데이터의 최종 상태를 DB에 바로 CUD합니다. 단, 다른 서비스나 다른 처리를 위해 Event는 발행할 수 있습니다. State Stored Aggregate로 만드는 방법은 Entity class에 Aggregate에 필요한 항목들을 추가하는 것입니다. @Aggregate 어노테이션을 붙여 Aggregate임을 표시 필드 중 Primary K..
마이크로서비스 패턴 중 Event Sourcing 패턴에서 Event Replay의 속도를 높이는 방법으로 Snapshot을 얘기 했었습니다. [마이크로서비스 패턴 쉽게 개발 1] 마이크로서비스 패턴 이해: Saga, Event Sourcing, API Composition, CQRS 위 글 내용 중 '통장계좌'서비스 예를 들어 'Snapshot'을 얘기 했던게 기억 나실 겁니다. 동일 주문에 대해 발생하는 Event수가 그리 많지 않아 Event Replay시간이 많이 걸리지는 않을 겁니다. 그런데 '통장계좌'서비스를 생각해 봅시다. 통장을 개설하고 각 통장마다 발생하는 Event수는 엄청나게 많을 것입니다. 예를 들어 한 통장에 1달에 보통 100건의 입출금 Event가 발생했고 10년(120개월)을..
QueryGateway는 비동기 통신으로 데이터를 조회하는 방법입니다. 동기로 조회하는 방법과 비동기로 조회하는 방법의 차이가 뭘까요 ? 동기통신으로 조회한다는 것은 요청자와 제공자가 직접 통신한다는 의미이고, 비동기 통신으로 조회한다는 것은 요청자와 제공자 사이에 중계자를 통해 조회하는 것입니다. 동기 조회는 요청자가 제공자가 누군지 알아야 하고 제공자의 응답 포맷이 변하면 소스를 수정해야 합니다. 비동기 조회는 반대로 요청자는 제공자가 누군지 알 필요 없고 제공자가 요청자가 요구하는 포맷에 맞추는 방식입니다. 예를 들어 모든 은행에서 내가 가진 계좌의 정보를 조회하는 서비스를 만든다고 생각해 봅시다. 동기 통신이라면 아래와 같이 '전계좌 조회'서비스에서 각 은행 계좌 서비스에 요청을 해야 합니다. '..
이번 편에서는 EventGateway를 통해서 Event를 publish하는 방법을 해 보겠습니다. Event Publishing이 필요한 대표적인 케이스는 별도의 마이크로서비스에 CQRS패턴을 적용하여 조회 전용 DB를 만드는 경우 입니다. Aggregate에서 AggregateLifecycle.Apply({event 객체})로 발행된 Event는 해당 서비스 내에서만 이용할 수 있습니다. 조회 전용 DB를 관리하는 별도의 서비스에서 연관된 다른 서비스 DB의 변화를 감지하려면 어떻게 해야 할까요? 그 서비스들이 자신의 DB 변화가 있을 때 변경이 있다는 Event를 발행해 줘야 합니다. 이때 사용하는 것이 EventGateway입니다. 또 하나의 케이스는 Saga 프로세스에서 참여 서비스의 실패 Ev..
- Total
- Today
- Yesterday
- 리퀴드폴리탄
- 스핀프로젝트
- 분초사회
- spotify
- 스포티파이
- 마이크로서비스
- 도파밍
- API Composition
- agile
- CQRS
- 돌봄경제
- Event Sourcing
- 애자일
- micro service
- 버라이어티가격
- 디토소비
- AXON
- 요즘남편 없던아빠
- 호모프롬프트
- 육각형인간
- 마이크로서비스 패턴
- SAGA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |