Skip to content

Latest commit

 

History

4,515 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Wow

Wow

Domain Model as a Service

A reactive CQRS and Event Sourcing framework for explicit, testable, and traceable domain decisions.

KaiCode'26 Excellent Award
KaiCode’26 Excellent Award

License GitHub release Maven Central Codacy Codecov CI Awesome Kotlin DeepWiki

Domain-Driven · Event-Driven · Test-Driven · Declarative · Reactive

English documentation · 中文文档


What Wow Gives You

Wow turns each write into an observable domain flow:

HTTP command → aggregate decision → domain event → sourced state → projection / saga

You define commands, events, aggregate rules, and sourcing handlers. Wow supplies the reactive command pipeline, event persistence, snapshots, wait stages, projections, sagas, generated metadata, WebFlux routes, and a Given → When → Expect test DSL.

This is most useful when business rules, state history, multiple read models, or cross-aggregate workflows justify Event Sourcing. For simple CRUD where one database transaction already expresses the whole problem, the added event-evolution and eventual-consistency costs may not pay off.

30-Minute First-Slice Target

Use this template

  1. Create or clone the Wow Project Template.
  2. Run ./gradlew :domain:check, then start ./gradlew :server:run with the documented in-memory configuration.
  3. Follow Getting Started to send a real CreateDemo command, wait for SNAPSHOT, and read state at aggregate version 1.

That path proves the domain test, generated route, command pipeline, event sourcing, snapshot wait, and versioned state read. The 30-minute duration is a target: the functional path has been exercised, but a first-time developer's wall-clock completion has not been measured. If you are adding Wow to an existing service, use Add Wow to an Existing Project.

Evidence in This Repository

Capability What to inspect
Aggregate decisions and event-sourced state Order and cart example and its domain specifications
Command dispatch, event persistence, projections, and sagas wow-core
Given → When → Expect verification wow-test
Generated HTTP command and state routes wow-webflux
Optional storage, messaging, security, and telemetry integrations wow-spring-boot-starter feature capabilities
Compensation and recovery operations Compensation domain and control plane

Features

Wow features

Architecture

Architecture

Compatibility Baseline

The current source tree declares:

Component Baseline
Wow 9.0.10
Java 17+
Spring Boot 4.1.1
Kotlin 2.4.10
KSP 2.3.11

The project template evolves independently. The tutorial records the exact template commit and its pinned Wow version; inspect its gradle/libs.versions.toml before starting. For another framework line, pin the exact release and inspect that tag: for example, v6.20.16 declares Wow 6.20.16 and Spring Boot 3.5.11.

Source, binary, and wire compatibility are separate concerns. Validate the one your upgrade requires, especially persisted events and generated HTTP contracts.

Continue

Related projects: CosId, CoSec, CoCache, Simba, CoSky, CoApi, and FluentAssert.

License

Wow is released under the Apache 2.0 License.

About

Modern Reactive CQRS Architecture Microservice development framework based on DDD and EventSourcing | 基于 DDD & EventSourcing 的现代响应式 CQRS 架构微服务开发框架

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

302 stars

Watchers

7 watching

Forks

Releases

Packages

Used by

Contributors

Languages