Publisher는 이벤트를 메시지 큐에 넣는 사람
Subscriber은 이 이벤트가 일어나면 나한테 알려줘 라고 메시지 큐한테 Subscriber를 하고 있는 서비스들
왜 쓰냐?
- Decoupling
RestAPI나 RPC를 이용하면 Synchronous 하게 이용할 수 있는데 그러면 그 모든 Dependency에 관련된 코드를 Service A에 넣어야 함
-> Service A는 복잡해지고 테스트하기 어려워지면 커플링이 많다고 말함
이 상황에서 Message Queue를 넣게 되면 dependency가 훨씬 적어짐
Service A는 Service B, C, D가 있다는 사실을 모름
ex)
Service B -> DB에 이 메시지 저장
Service C -> push notification 보내고
Service D -> 유저한테 메시지를 forward
-> 같은 일을 하는데 Service A가 B, C, D에 대한 dependency가 없어짐