Drawbacks of Distributed Lock

분산 락을 사용하면 데이터가 특정 시간(락의 대기 시간(wait time)과 임대 시간(lease time))에 의존하게 된다. 따라서, 필수적으로 처리해야 할 데이터가 처리되지 않는 상황이 발생할 수 있다. 또한, 락이 해제될 때 두 개의 데이터가 락을 경합하면 순서대로 처리되지 않을 가능성도 있다.

Sequential events

대량의 트래픽이 발생하는 순서가 보장되어야 하는 선/후행 관계가 중요한 이벤트 에서 고려할 수 있는 몇 가지 아이디어:

  • NoSQL - 시계열 데이터를 비동기로 빠르게 처리할 수 있는 구조, 높은 처리량과 스케일 아웃
  • Idempotency - 장애로 인한 데이터 중복이나 누락을 처리하는 정책을 수립하여 플랫폼의 정합성을 보장
  • Kafka - 높은 처리량 및 배포나 장애로 인한 특정 서버의 순단 대처 가능한 구조
    • Event Driven 을 사용하면 Batch 성 로직을 제거할 수 있음