Once, for all tiers and platforms. Don't mess with Json. DRY.
Focus on the business logic
... rather than “plumbing”. A Command will be delivered to only one Aggregate.
Projections will get all Events they need.
ProcessManagers will cover more complex scenarios.
Storage, message delivery, and other environment matters are isolated from the main code.
Clear work separation
Thanks to CQRS, more experienced developers can work on the core domain.
The read–side and UI are created by the rest of the team.
People don't add new database indexes or fields to core data because of UI needs.
In-memory and JDBC-based storage implementations allow to implement and test the core logic
quickly. Adopt your application to selected deployment environment(s) with a few lines of code, added in one place.
Evolve your business model
Add and remove fields while keeping binary compatibility with older code;
handle new opportunities with oneof, natively provided by Protobuf.
Build new Projections on the whole event history of the system.
Scale with micro-services
CQRS architecture allows to scale read- and write- sides independently.
When further scaling is needed, Event-Driven Architecture allows to further separate and scale heavily loaded parts.
Permissive Apache License allows using the framework in closed-source projects.
You are welcome to contribute to improving the framework.
Want to learn more?
Get started by learning concepts and exploring example applications.