Skip to content

Add CQRS read model pattern#7

Merged
CosmicDreamer17 merged 1 commit into
mainfrom
feature/cqrs-read-models
Mar 29, 2026
Merged

Add CQRS read model pattern#7
CosmicDreamer17 merged 1 commit into
mainfrom
feature/cqrs-read-models

Conversation

@CosmicDreamer17

Copy link
Copy Markdown
Owner

Summary

  • Adds read-only query side for both bounded contexts (CQRS separation)
  • WorkItemReadModel and IntegrationJobReadModel as frozen dataclasses in application layer
  • WorkItemQueryPort and IntegrationJobQueryPort abstract interfaces for read operations
  • SqlAlchemyWorkItemQueryAdapter and SqlAlchemyIntegrationJobQueryAdapter concrete implementations
  • Query functions: get_work_item, list_work_items, get_integration_job, list_integration_jobs with optional status filtering

Test plan

  • 9 new query tests (53 total, all passing)
  • Read models are frozen dataclasses (no mutation)
  • Query functions use their own sessions (no UoW commit)
  • Architecture enforcement still green (import-linter, pytest-archon)
  • make all-checks passes

Closes #6

🤖 Generated with Claude Code

Introduces read-only query side for both bounded contexts:
- WorkItemReadModel and IntegrationJobReadModel (frozen dataclasses)
- Query port interfaces in application layer
- SQLAlchemy query adapters in infrastructure layer
- 9 new tests for query functions (53 total)

Closes #6

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@CosmicDreamer17
CosmicDreamer17 merged commit 4e4bb61 into main Mar 29, 2026
3 checks passed
@CosmicDreamer17
CosmicDreamer17 deleted the feature/cqrs-read-models branch March 29, 2026 00:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add query/read model pattern for CQRS separation

1 participant