175
7
장
상태 저장 스트리밍
면 그만입니다. 즉, 알기쉽게 기본값이
null
인 널 허용 컬럼을 새로 추가해서 간략히 테스트해
본 다음 애플리케이션을 재배포하면 됩니다.
비즈니스 니즈와 변경할 데이터가 복잡해질수록 마이그레이션 리스크도 증가합니다. 마이그레
이션이 복잡해지면 오류가 발생하기 쉽고 데이터 저장소를 완전 재구성하는 방법에 비해 결과
가 잘못될 공산이 큽니다.
DB
마이그레이션은 비즈니스 로직의 일부가 아니므로 애플리케이
션을 완전 재구성할 때에는 있을 수 없는 비정합성
inconsistency
이 스며들 수 있습니다. 이런 종류
의 마이그레이션 오류는 테스트로 잡아내지 않으면 감지하기 어렵고 결국 정합성이 안 맞는 데
이터가 쌓이게 될 것입니다. 마이그레이션을 하기로 결심했다면 실제 업무에 가까운 테스트 데
이터 세트로 철저하게 검증해서 재구성을 하는 경우와 비교해보세요.
7.6
트랜잭션과 실제로 한 번 처리
이벤트를 실제로 한 번 처리
effectively
once
processing
하면 프로듀서, 컨슈머, 이벤트 브로커 실패와
상관없이 단일 진실 공급원에 반영된 모든 업데이트를 일관되게 적용할 수 있습니다. ‘실제로
한 번 처리’를 ‘정확히 한 번 처리
exactly
once
processing
’로 언급하는 경우도 있지만 이는 정확한 표현
이 아닙니다. 마이크로서비스는 컨슈머 실패, 후속 복구 등으로 인해 동일한 데이터를 여러 번
처리하지만 오프셋은 커밋하지 못한 상태로 스트림 시간만 늘리게 되는 경우가 있습니다. 이벤
트가 처리될 ...