
초기 시스템은 그림과 같이 서버를 구축한 후에 서버에 필요한 데이터를 직접 전달하는 방식을 택하였다.
시스템은 점점 커지고 지표뿐만 아니라 다양한 데이터들을 보고 싶다는 니즈에 맞춰 아래와 같이 변경되었다.

시스템에 요구 사항이 추가될 수록 아키텍처는 점점 더 복잡해진다.
이러한 구조에 대한 개선의 필요가 있었고 중간에 발행/구독 서버를 추가하였다.

발행/구독 서버는 데이터를 제공하고 제공 받는 중간 다리 역할을 하며, 이것이 메시지 발행/구독 시스템이다.
지표 데이터 이외에 로그 데이터에 대해서도 비슷한 요구사항이 들어왔다.
아래 그림은 요구사항에 맞는 발행/구독 시스템을 추가한 것이다.

뭔가 처음 생겼던 문제로 돌아간 거 같다.
다른 요구사항이 계속 생길 수록 발행/구독 서버는 추가될 것이고 그에 따른 복잡도는 계속해서 증가할 것이다.
또한, 버그도 한계도 제각각인 다수의 데이터 큐 시스템을 관리해야 한다.