본문 바로가기

시스템 디자인

알림 시스템 설계

 

알림 시스템 설계 시 구체화 해야 하는 명세들

1. 알림의 종류 : 모바일 앱 푸시 / SMS / 이메일 → 알림의 종류별로 각기 다른 제3자 알림서비스를 사용해야 한다.

2. 알림별 처리량(Throughput) : 1일 알림 건수 등 리소스 용량을 계획하는데 사용된다.

3. 알림 실패 시 대응 정책 : 알림 실패시 재시도를 위한 장치가 필요하다. 

4. 보안 수준 : 알림 발행 단계에서 보안을 위해 인증을 추가해야 한다.

 

 

알림 시스템의 구성

1. 알림 발행을 위한 API

2. 보안을 위한 인증 서비스

3. 알림 내용 생성하기 위한 데이터베이스 및 캐시

4. 메시지 큐

5. 메시지를 읽고 알림서비스를 호출하는 알림 서버

6. 실패 시 재시도 및 중복 방지를 위한 알림 로그

7. 제3자 알림 서비스

 

 

메시지 큐 설계

1. Kafka vs MQ : 다중화된 작업 서버(그림에서 서버B)중 하나만 메시지를 읽으면 되기 때문에 대용량 스트림을 브로드캐스팅 하는데 특화된 Kafka 대신 MQ를 채택한다. 

2. 알림 종류별로 큐를 다르게 쓸 필요는 없다. 작업 서버 내부 로직으로 처리하고, 큐와 작업 서버를 스케일 아웃하는데 

 

 


참고자료