DDD
마이크로서비스아키텍처를 말할 때 많이 언급되는 디자인 패턴 중 하나 실제 비즈니스 도메인을 우리가 만들려고 하는 아키텍처에 투영함에 따라 도메인을 정의하고 그것을 바탕으로 서로 커뮤니케이션하는데 좋은 툴이 된다. 현업에서 기획, 사업부, 개발 기획, 설계, 개발 등이 서로 동일한 언어를 사용함으로써 comunication cost를 minimize 하게 할 수 있다.
Item Added to Cart
- 비즈니스에서 일어나는 이벤트
- 과거, 수동형으로 작성
Add Item to Cart
- 이벤트가 일어나게 되는 트리거
Item
- 엔티티
- 하나 이상 Attribute를 포함하는 객체
- 트랜잭션 경계를 구성하는 단위
- aggregate끼리는 object끼리 reference 하는 것이 아닌 id로 reference 하여 loose coupling 한 구조를 가져간다.
- 이벤트가 발생되면 aggregate도 state change가 있다. (atomic)
SMTP
- 외부 시스템
- aggregate 간의 통신을 sync, async로 표현하여 technical 한 implementation을 구현한다.
- BFF(Backend For Frontend)를 구성
- 서비스들의 상세 spec을 작성하게 된다.
- API, DATA, STORIES, RISK, UI를 정의함.