주문 서비스는 주문을 생성할 수 있다.
하지만 이 프로젝트에서 “주문 완료”는 주문 서비스 혼자 결정할 수 있는 상태가 아니다.
상품 재고가 차감되어야 하고, 배송이 만들어져야 하며, 마지막으로 배송이 완료되어야 한다.
즉, 주문 완료는 여러 서비스의 협업 결과다.
이 점이 chap04에서 중요하다.
배송 완료라는 상태 변화가 들어와야 주문도 완료될 수 있다.

chap04의 delivery-service에는 배송 완료 API가 있다.
PUT /api/deliveries/{deliveryId}/complete
이 API는 단순히 배송 상태만 바꾸는 요청이 아니다.
배송이 완료되었다는 사실을 다음 흐름으로 넘기는 트리거다.
배송이 완료되면 delivery-service는 delivery-completed 이벤트를 발행한다.
배송 완료
-> delivery-completed
이 이벤트는 Orchestrator가 받는다.
Orchestrator는 delivery-completed 이벤트를 받으면 complete-order-command를 발행한다.
여기서 이벤트와 커맨드의 차이를 다시 떠올리면 좋다.
delivery-completed