마이크로서비스 패턴 실습 프로젝트
- Restaurant Service 매장, 메뉴 서비스
- Consumer Service (배달 받는) 소비자 서비스 — 3장) 기본 메시징
- Kitchen Service 주방 서비스
- Order Service 주문 서비스 — 4,5장) 애그리거트 패턴 사용 및 오케스트레이션 사가 구현
- Accounting Service 회계 서비스 — 6장) 이벤트 소싱 기법 사용
- Order History Service 주문 내역 서비스 — 7장) CQRS, DynamoDB 사용
- Delivery Service 배달 서비스
- API Gateway Spring Cloud Gateway를 사용한 API Gateway 구현 — 8장) 외부 API 패턴
- 단위 테스트
- Entity — OrderTest
- Value Object — MoneyTest
- Saga — CreateOrderSagaTest
- Domain Service — OrderServiceTest
- Controller — OrderControllerTest
- Event / Message Handler — OrderEventConsumerTest
- 통합 테스트
- 영속화 테스트 — OrderJpaTest
- 소비자 주도 계약 테스트 : using Pact
- REST 요청/응답형 상호 작용 — API Gateway ➡️ 매장 서비스 (매장 조회)
- gRPC 요청/응답형 상호 작용 — API Gateway ➡️ 주방 서비스 (티켓 조회)
- 발행/구독 스타일 상호 작용 — 주방 서비스 ➡️ 매장 서비스 (메뉴 변경 이벤트)
- 비동기 요청/응답형 상호 작용 — 주문 서비스 ➡️ 소비자 서비스 (주문 생성 사가 / 소비자 검증)
- jangjunha/ftgo-proto Protobuf/gRPC 인터페이스 라이브러리
- jangjunha/ftgo-graphql-server GraphQL version of API Gateway - 8장) 외부 API 패턴
- jangjunha/ftgo-web MVP 웹사이트
$ docker-compose up -d