이 샘플 애플리케이션은 여러 개의 독립 구성 요소(예: 마이크로서비스 )로 분해된 간단한 주문 이행 시스템을 보여줍니다.
저장소에는 광범위한 청중이 코드를 이해하고 대안을 비교할 수 있도록 여러 구현 대안에 대한 코드가 포함되어 있습니다. 아래 표에는 이러한 대안이 나열되어 있습니다.
이 예는 DDD(도메인 중심 설계) , EDA(이벤트 중심 아키텍처) 및 µS(마이크로서비스) 에서 배운 내용을 존중하며 이러한 주제에 직접 액세스할 수 있도록 설계되었습니다.
참고: 코드는 설명을 위해 작성되었습니다. 따라서 저는 일반 솔루션을 사용하여 프로덕션 준비 코드보다 단순화된 코드나 복사 및 붙여넣기를 선호했습니다. 코딩 스타일 모범 사례를 고려하지 마세요! 쉽게 설명할 수 있는 코드로 작성되었습니다 .
O'Reilly의 Practical Process Automation 책에서 개념에 대한 자세한 정보를 찾을 수 있습니다.
Flowing Retail은 매우 쉬운 주문 이행 시스템을 시뮬레이션합니다.
가장 기본적인 선택은 통신 메커니즘을 선택하는 것입니다.
통신 메커니즘 다음으로 선택할 것은 워크플로 엔진 입니다.
프로그래밍 언어 :
Flowing Retail은 매우 쉬운 주문 이행 시스템을 시뮬레이션합니다. 비즈니스 로직은 위에 표시된 서비스로 구분됩니다(컨텍스트 맵으로 표시됨).
일부 서비스는 본질적으로 오랫동안 실행 됩니다. 예를 들어 결제 서비스는 고객에게 만료된 신용 카드를 업데이트하도록 요청합니다. 워크플로우 엔진은 이러한 장기 실행 상호작용을 유지하고 제어하는 데 사용됩니다.
상태 머신( 또는 이 경우 워크플로 엔진 )은 하나의 서비스 내에서 사용되는 라이브러리입니다. 여러 서비스에 워크플로 엔진이 필요한 경우 원하는 엔진을 실행할 수 있습니다. 이렇게 하면 프레임워크를 사용할지, 어떤 프레임워크를 사용할지 자율적인 팀 결정이 이루어집니다.