CQRS
CQRS is modeled as commands, queries, and optional read models.
architecture :cqrs,
commands: "app/commands/**/*.rb",
queries: "app/queries/**/*.rb",
read_models: "app/read_models/**/*.rb"
This checks:
- commands do not depend on queries
- queries do not depend on commands
- queries do not call obvious mutating methods such as
save!,update!, ordestroy! - the declared components do not form cycles
The Rails default is:
preset :rails_cqrs
This is a structural check. It does not prove that every read and write path obeys CQRS at runtime.