33장. Change Stream 재시작 워크북
consumer는 event 처리와 resume token 저장의 원자성 경계를 정한다. token을 먼저 저장하면 event를 잃고, side effect 후 저장하면 중복 처리할 수 있다. 그래서 consumer 출력에 event id 기반 멱등성을 둔다.
consumer를 중지한 동안 oplog window 안에 event를 쌓고 resume한다. 다음에 window를 넘긴 token 실패를 시뮬레이션하고 full reconciliation→new stream start 런북을 수행한다.
lag, last processed clusterTime, token age, duplicate, reconciliation count를 metric으로 둔다. Change Stream을 영구 queue로 가정하지 않고 downstream outage가 oplog window를 넘을 때의 recovery를 준비한다.