
OMS의 최적화된 마이크로서비스 아키텍처 디자인
두줄요약
OMS를 판매처와 풀필먼트 사이의 주문 인터프리터로 설계한 과정을 소개했습니다.\nshared cache 중심 MSA로 트래픽을 줄이고 병렬 개발·상시 배포를 지원합니다.
문제 상황
- 판매처별 주문 정보를 풀필먼트 이행용 데이터로 변환하고 배송 예정 정보를 API로 제공하는 OMS 역할
- 다양한 판매처·풀필먼트 도메인 데이터의 결합과 안정적인 실시간 응답 요구
구조와 흐름
- 기능·역할·관리비용 기준의 OMS 마이크로서비스 분리와 판매처 결합 최소화
- 도메인 소유 서비스의 shared cache 쓰기와 다른 서비스의 읽기 전용 조회
- 캐시 미스·타임아웃 시 원본 MSA 직접 호출, 외부 판매처 연동 서비스의 OMS 그룹 외부 분리
선택 이유
- 최소 데이터 동기화와 OMS 자체 데이터 결합을 통한 이행 정보 재가공 서빙
- 고트래픽 operation API의 캐시 중심 응답으로 내부 MSA 호출·네트워크 비용 감소
- 독립 레포지토리·작은 배포 단위 기반의 병렬 개발, PR 리뷰 간소화, 카나리 배포
트레이드오프
- 캐시 장애 시 내부 MSA로 트래픽 집중 가능성에 대비한 보수적 auto scale out 기준
- 캐시 데이터 범용성·TTL·메모리 사용량 검토와 2개 캐시 클러스터 분리 운영
- 모든 엔지니어의 전체 MSA 컨텍스트 유지와 중복 데이터 관리를 막기 위한 협업 부담
