Hermes Wiki

CQRS

Command Query Responsibility Segregation — separate models (and sometimes separate stores) for writes vs reads.

Why we need this / what value this brings

Lets the read path and write path be optimized independently — a denormalized, fast read model doesn't have to compromise the write model's integrity.

When to use this

When read and write load/shape diverge significantly (heavy complex reads, simple writes, or vice versa) — adds real complexity, so only when justified.

How to use or implement this

Keep writes going through a normalized model with strong validation, and build a separate, denormalized read model updated asynchronously from write events.

Research questions

  • Does Localz have a read-heavy path (browsing services/providers) that would benefit from a denormalized read model?

Empty folder — drop notes, links, and findings here as you research.

Hermes Wiki