배달 플랫폼 MSA 구성 — 도메인 분리·통신 방식·장애 추적 한계로 설명
캡스톤 프로젝트에서 배달 중개 플랫폼을 MSA 구조로 설계했습니다. 주문·가게·배달·알림을 각각 분리했고, 서비스 간 통신은 동기 REST와 비동기 이벤트를 용도에 따라 나눴습니다. 주문 생성 시 가게 유효성 확인은 동기로 처리했고, 알림은 이벤트 발행으로 느슨하게 연결했습니다. 데이터는 서비스별 독립 DB를 유지해서 주문 서비스가 가게 DB를 직접 참조하지 않도록 했습니다. 가장 어려웠던 점은 장애 추적이었는데, 로그가 서비스마다 흩어져 있어서 요청 흐름을 따라가기가 어려웠습니다.
trace ID를 헤더로 전파하는 방식으로 개선했지만, 모놀리스보다 운영 복잡도가 확실히 높다는 것을 실감했습니다. MSA는 팀 규모와 도메인 경계가 명확할 때 비용이 줄어드는 자리라는 생각을 갖게 됐습니다.