MSA는 다른 서비스의 데이터베이스를 직접적으로 요청하면 안된다.
1. API GATEWAY
서비스가 여러개일 경우 각 서비스의 데이터가 필요한 경우 서비스의 IP가 필요하다.
각각의 서비스를 일일이 호출해야하고 요청을 보낸 뒤 결과를 기다려야한다. 이에따른 높은 지연시간이 발생하게 된다.
그리하여 가운데에 API 게이트웨이를 하나 두고 서비스들의 URL을 하나로 묶어준다.
2. CQRS 패턴 ( Command and Query Responsibility Segregation) : 명령과 조회의 책임 분리
개별 인터페이스를 사용해서 데이터를 읽는(조회) 작업과 업데이트(처리)하는 작업을 분리하는 것이 핵심입니다. 서비스 애플리케이션에서 CQRS패턴으로 개발을 진행함으로서 성능, 확장성, 보안을 최대화할 수 있습니다.
3, 이벤트 소싱 패턴
이벤트 소싱은 배치성 데이터 저장소에 현재 상태만 저장하는 것이 아니라 이벤트 브로커(전용 저장소)에 발생된 모든 이벤트 기록(레코드)들을 기록하는 것을 뜻합니다. 이를 통해 데이터 모델과 비즈니스 도메인을 동기화할 필요가 없어지고 성능, 확장성, 응답성이 향상되어 도메인 태스크를 간소화 할수 있습니다.