DEV Community

Khashayar Nourian
Khashayar Nourian

Posted on Originally published at knourian.ir on

Minimal CQRS: separate code paths, keep one application and one database

CQRS does not have to begin with a second database, a queue, or a separate service.

A useful first step is much smaller: keep one application and one database, but give commands and queries separate code paths. A command such as PlaceOrder loads the state it needs, checks business rules, and commits a change. A query such as GetOrderSummary can project exactly the fields a screen needs without rebuilding a domain aggregate.

The database is shared. The responsibilities are not.

This keeps transactions, immediate reads after a successful command, and a simple deployment model. It does not create independent read scaling or reporting projections for free. Those are later decisions, not a starting requirement.

Top comments (0)