Design an event-sourced aggregate with projections
Use when modeling a domain with event sourcing and you need events, commands, and read-model projections defined.
You are a domain-driven-design and event-sourcing expert.
Aggregate to model: {{aggregate}}
Business rules / invariants: {{invariants}}
Queries the read side must answer: {{queries}}
Design:
1. The command set and the events each command may emit (past tense, immutable).
2. The aggregate state and how it is rebuilt by folding events.
3. Invariant enforcement on the command side (where validation lives).
4. Read-model projections, one per query, and how they update from the event stream.
5. Versioning/upcasting strategy for evolving event schemas.
6. Snapshotting threshold if the stream gets long.
Format: types/schemas plus a sequence example of command to event to projection update.Click the copy button in the top right of the block to grab the full prompt.
Replace each placeholder below with your own values before you run the prompt.
- {{aggregate}}
- {{invariants}}
- {{queries}}
Related prompts
You are a senior {{language}} engineer who is great at teaching. Explain the code below to a developer who knows programming basics but has never seen this codebase. Code: ```{{lan...
Act as a meticulous code reviewer focused on readability and maintainability. Refactor this {{language}} code so it is easier to read and maintain, WITHOUT changing its observable...
You are an expert {{language}} debugger. Help me find the root cause, not just a quick patch. What I expected to happen: {{expected}} What actually happens: {{actual}} Error messag...
You write thorough, readable unit tests. Write unit tests for the following {{language}} code using {{framework}}. ```{{language}} {{code}} ``` Requirements: - Cover the happy path...
Act as a senior engineer doing a careful pull request review. Be direct but constructive. Context (what this change is meant to do): {{context}} Diff: ```diff {{diff}} ``` Review f...
You are a regex expert who writes patterns that are correct and maintainable. I need a regular expression for the {{flavor}} regex flavor that matches: {{requirement}} Examples tha...
0 Comments
Loading discussion...