프로젝트 소개

Wow는 'Domain Model as a Service' 개념을 중심으로 하는 Apache 2.0 라이선스 오픈소스 프레임워크로, 마이크로서비스 개발을 위한 리액티브 CQRS 및 이벤트 소싱 패턴을 지원하도록 구축되었습니다. 각 쓰기 작업을 관찰 가능한 엔드투엔드 도메인 흐름으로 구조화합니다: HTTP 커맨드 → 애그리거트 결정 → 도메인 이벤트 → 소싱된 상태 → 프로젝션 또는 사가 처리. 이 프레임워크는 리액티브 커맨드 파이프라인, 이벤트 영속성, 상태 스냅샷, 대기 단계, 읽기 모델 프로젝션, 사가, 생성된 메타데이터, WebFlux HTTP 라우트, Given → When → Expect 도메인 테스트 DSL을 포함한 즉시 사용 가능한 컴포넌트를 제공합니다. 비즈니스 규칙의 복잡성, 상태 이력 감사 요구사항, 다중 읽기 모델 필요성, 또는 교차 애그리거트 워크플로가 이벤트 소싱의 오버헤드를 정당화하는 시스템에 가장 적합하며, 단일 데이터베이스 트랜잭션이 문제 도메인을 완전히 포착하는 단순한 CRUD 사용 사례에는 권장되지 않습니다. 온보딩을 위해 이 프로젝트는 개발자가 목표한 30분 설정 내에 첫 번째 기능 슬라이스를 구축할 수 있도록 전용 프로젝트 템플릿을 제공하며, 단계에는 템플릿 복제, 도메인 검사 실행, 문서화된 인메모리 구성으로 서버 시작, 엔드투엔드 커맨드 처리, 이벤트 소싱, 스냅샷 처리, 버전 관리된 상태 읽기 흐름 검증이 포함됩니다. 저장소에는 구체적인 예제 구현이 포함되어 있습니다: Kotlin 주문 및 장바구니 도메인 예제와 Java 은행 송금 예제, 그리고 핵심 커맨드 디스패치, 이벤트 영속성, 프로젝션, 사가, 도메인 테스트, WebFlux 라우트 생성, 선택적 스토리지, 메시징, 보안, 텔레메트리 기능을 위한 Spring Boot 스타터 통합을 위한 전용 모듈이 있습니다. 또한 이벤트 처리 워크플로를 위한 내장 보상 및 복구 도구도 포함되어 있습니다. 현재 메인 브랜치 기준선은 버전 9.1.5이며, Java 17+가 필요하고 Spring Boot 4.1.1, Kotlin 2.4.20, KSP 2.3.11을 위해 구축되었습니다. 이전 프레임워크 라인을 위한 별도의 릴리스 태그가 유지되며, 예를 들어 v6.20.16은 Spring Boot 3.5.11을 대상으로 합니다. 이 프레임워크는 Maven Central에 게시되고, 영어와 중국어 이중 언어 문서를 유지하며, 모듈식 설계, 리뷰 규율, 테스트 관행, 정적 분석, 문서 품질로 KaiCode'26 Excellent Award를 수상했습니다.