선착순 이벤트 시스템 관련해서 Ex) 100개의 쿠폰을 발급한다고 했을 때db로만 쿠폰 발급 로직을 조절할 경우 race condition 발생으로 인해 100개보다 더 많은 쿠폰이 발급될 수 있음 Redis 도입가장 떠올리기 쉬운 방법은 java의 synchronized 키워드를 사용해서 access를 동시에 하는 것을 막는 건데 사실 이 방법의 가장 큰 문제점은 여러 대의 서버를 띄울 경우 무용지물인 부분이다. (하나의 서버에 들어온 여러 개의 동시 접근을 막아주는 것이기 때문) 그렇다면 레디스 도입을 통해 문제를 해결하는데 레디스에는 incr라는 명령어가 있음1 증가시키면서 증가시킨 값을 가지고 온다. 가지고 온 값이 100이 넘었을 경우 쿠폰을 발급하지 않도록 한다. 카프카 도입레디스에 저장된 ..