아키텍처 개선하기

구현에만 집중하여 공부했던 좋은 시스템 설계 디자인을 하나도 못 지켰다. 이를 지키고자 리팩토링을 진행해보고자 한다.

먼저 내가 구현 및 개선하고자 하는 기능들을 단계별로 나열해보겠다.

  • 성능 개선 관점

    • 현재 Redis Pub/Sub을 통해 되어 있다. 이러한 설계는 레디스가 단일 장애 지점이 된다. 모든 서버가하나의 Redis를 보고 있으면 이 Redis가 장애 시 채팅 서비스가 멈추게 된다. 따라서 이중화를 통해 단일 장애 지점이 안되도록 개선해보겠다.

    • 두번째는 Redis를 통해 서버에 전송되든 메시지가 유실된 경우이다. Redis의 경우 업데이트를 통해 메시지 저장 기능 또한 제공하지만 학습의 관점에서 카프카를 도입해볼 것이다 (오버 엔지니어링 인지)

    • Redis Stream, JetStream의 경우 유의미한 성능 차이가 있는지 테스트 해보고 싶다.

  • 기능

    • 현재 완성된 기능

      • 1대1 채팅

먼저 도메인 정의를 다시 시작했다.

Last updated