Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Domain-Driven Design
  3. Wow

Wow

Apache-2.0Kotlinv9.0.10

A Kotlin/Java framework for building reactive, event-sourced microservices using DDD and CQRS patterns.

Visit WebsiteGitHubGitHub
302 stars38 forks0 contributors

What is Wow?

Wow is a framework for developing reactive microservices based on Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), and Event Sourcing. It provides a structured architecture to handle complex business domains by separating command and query models, persisting state changes as events, and enabling high-performance, scalable applications. The framework integrates with Spring Boot and offers tools for testing, observability, and event compensation.

Target Audience

Backend and microservice developers, particularly those working in Kotlin or Java ecosystems, who are building complex, event-driven systems that require scalability, audit trails, and strict domain modeling.

Value Proposition

Developers choose Wow for its cohesive integration of DDD, CQRS, and Event Sourcing patterns into a single, reactive framework. It stands out with its declarative API, comprehensive testing utilities, built-in observability, and proven high-performance benchmarks, reducing the boilerplate and complexity typically associated with these architectural patterns.

Overview

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

Use Cases

Best For

  • Building event-driven microservices with complex business logic
  • Implementing Domain-Driven Design in Kotlin or Java applications
  • Creating systems that require full audit trails and event replayability
  • Developing high-throughput command processing services
  • Structuring applications with a clear separation of commands and queries
  • Integrating Event Sourcing and CQRS with Spring Boot ecosystems

Not Ideal For

  • Projects with simple CRUD requirements and no need for audit trails or complex business logic
  • Teams prioritizing strong consistency over eventual consistency, as event sourcing introduces latency
  • Organizations lacking expertise in Domain-Driven Design or event-driven architectures
  • Applications needing integration outside the JVM ecosystem, due to tight Spring Boot coupling

Pros & Cons

Pros

Declarative Domain Modeling

Enables fluent definition of aggregates, commands, and events in Kotlin/Java, as shown in the modeling patterns and test code snippets for CartSpec and OrderTest.

High-Performance Command Processing

Supports configurable wait strategies (SENT, PROCESSED) with proven TPS benchmarks, such as 59,625 average TPS for AddCartItem in SENT mode, detailed in performance reports.

Comprehensive Testing Suite

Provides AggregateVerifier and SagaVerifier for unit testing with a Given-When-Expect pattern, facilitating 80%+ test coverage, as demonstrated in the example domain tests.

Built-in Observability

Integrates with OpenTelemetry for tracing and monitoring across distributed systems, highlighted in the observability section with visual dashboards.

Event Compensation Dashboard

Includes tools and a dashboard for handling failed event processing and retries, with detailed sequence diagrams and execution flows in the documentation.

Cons

Steep Learning Curve

Requires understanding of DDD, CQRS, Event Sourcing, and Reactive Programming, as listed in preconditions, making it inaccessible for teams new to these concepts.

Infrastructure Complexity

Deployment examples depend on Redis, MongoDB, and Kafka, indicating significant setup and operational overhead for distributed systems.

Spring Boot Lock-in

Tightly integrated with Spring Boot 3.x/4.x and Spring WebFlux, limiting adoption in non-Spring environments or with alternative JVM frameworks.

Eventual Consistency Trade-offs

Event sourcing inherently introduces eventual consistency, which may not suit applications requiring immediate data synchronization, despite compensation mechanisms.

Frequently Asked Questions

Quick Stats

Stars302
Forks38
Contributors0
Open Issues5
Last commit12 hours ago
CreatedSince 2023

Tags

#event-driven#cqrs#high-performance#event-sourcing#microservice#domain-driven-design#reactive-programming#ddd#java#microservices#spring-boot#kotlin#architecture#elasticsearch

Built With

K
Kotlin
K
Kafka
M
MongoDB
S
Spring Boot
O
OpenTelemetry
S
Spring WebFlux
J
Java
R
Redis

Links & Resources

Website

Included in

Domain-Driven Design12.2k
Auto-fetched 7 hours ago

Related Projects

DDDplus frameworkDDDplus framework

轻量级DDD正向/逆向业务建模框架,支撑复杂业务系统的架构演化!

Stars1,153
Forks277
Last commit8 months ago
akka-dddakka-ddd

Akka CQRS/ES framework

Stars360
Forks58
Last commit1 year ago
JESAJESA

Event sourced aggregates for Java

Stars9
Forks4
Last commit10 years ago
LagomLagom

The Lagom Framework is a microservices framework for the Java Virtual Machine, with APIs for the Java and Scala languages. It includes an Event Sourcing/CQRS based persistence module

Stars0
Forks0
Last commit
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub