
174
이벤트 기반 마이크로서비스 구축
7.5.1
재구성
애플리케이션의 내부 상태를 업데이트하는 가장 일반적인 방법은 마이크로서비스의 상태 저장
소를 재구성
rebuild
하는 것입니다. 먼저 마이크로서비스를 중지한 뒤 컨슈머 입력 스트림 오프셋
은 초기 시점으로 리셋하고 체인지로그 또는 외부 상태 저장소에 보관된 중간 상태는 삭제합니
다. 그런 다음, 새 버전의 마이크로서비스를 시동하고 입력 이벤트 스트림에서 이벤트를 다시
읽어 상태를 재구성합니다. 이로써 새로운 비즈니스 로직에 따라 상태가 정확히 구성되고 모든
새 출력 이벤트도 함께 만들어져 이를 구독하는 다운스트림 컨슈머에게 전파됩니다. 이런 이벤
트는 비즈니스 로직과 출력 포맷이 바뀌었을 테니 중복 이벤트가 아니며 변경된 내용은 다운스
트림으로 반드시 내리 전파돼야 합니다.
상태를 재구성하려면 필요한 입력 이벤트 스트림의 모든 이벤트가 있어야 합니다. 특히, 상태
와 집계를 구체화하는 데 필요한 이벤트가 전부 다 존재해야 합니다. 애플리케이션이 입력 데
이터 세트에 전적으로 의존할 경우 언제라도 마이크로서비스 구현체의 데이터 저장소 외부에
서 소스 데이터를 쉽게 사용할 수 있도록 만들어야 합니다.
TIP
재구성하는 시간은 꽤 오래 걸릴 수 있기 때문에 마이크로서비스의
SLA
상 문제가 없는지 확인해야 합니다.