DB만 사용할 때는 들어오는 데이터와 나가는 데이터가 크게 다르지 않습니다. 하나의 서버가 하나의 상태를 관리하고 있기 때문입니다.모든 요청은 동일한 저장소를 바라보고, 하나의 진실(Source of Truth)이 존재합니다. 하지만 서비스의 규모가 커지는 순간 상황은 달라집니다. 트래픽을 감당하기 위해 서버를 늘리고, 응답 속도를 개선하기 위해 Redis를 도입하고, 비동기 처리를 위해 Kafka를 붙입니다.그리고 그 순간부터 우리는 불편한 사실과 마주하게 됩니다. 어떤 곳에는 최신 데이터가 있고, 어떤 곳에는 아직 반영되지 않은 값이 있습니다. 어떤 요청은 성공했는데, 다른 곳에서는 여전히 이전 상태를 반환합니다. 데이터의 불일치는 사라지지 않았습니다. 오히려 더 자주, 더 복잡한 형태로 나타납니다...