<< All versions
Skill v1.0.1
currentLLM-judged scan95/100wshobson/agents/projection-patterns
4 files
──Details
PublishedJune 23, 2026 at 09:22 AM
Content Hashsha256:b05b06b24ea2c628...
Git SHAcc37bfdd292c
Bump Typepatch
──Files
Files (1 file, 2.6 KB)
SKILL.md2.6 KBactive
SKILL.md · 64 lines · 2.6 KB
version: "1.0.1" name: projection-patterns description: Build read models and projections from event streams. Use when implementing CQRS read sides, building materialized views, or optimizing query performance in event-sourced systems.
Projection Patterns
Comprehensive guide to building projections and read models for event-sourced systems.
When to Use This Skill
- Building CQRS read models
- Creating materialized views from events
- Optimizing query performance
- Implementing real-time dashboards
- Building search indexes from events
- Aggregating data across streams
Core Concepts
1. Projection Architecture
┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ Event Store │────►│ Projector │────►│ Read Model ││ │ │ │ │ (Database) ││ ┌─────────┐ │ │ ┌─────────┐ │ │ ┌─────────┐ ││ │ Events │ │ │ │ Handler │ │ │ │ Tables │ ││ └─────────┘ │ │ │ Logic │ │ │ │ Views │ ││ │ │ └─────────┘ │ │ │ Cache │ │└─────────────┘ └─────────────┘ └─────────────┘
2. Projection Types
| Type | Description | Use Case | |
|---|---|---|---|
| Live | Real-time from subscription | Current state queries | |
| Catchup | Process historical events | Rebuilding read models | |
| Persistent | Stores checkpoint | Resume after restart | |
| Inline | Same transaction as write | Strong consistency |
Templates and detailed worked examples
Full template library and detailed worked examples live in references/details.md. Read that file when you need the concrete templates.
Best Practices
Do's
- Make projections idempotent - Safe to replay
- Use transactions - For multi-table updates
- Store checkpoints - Resume after failures
- Monitor lag - Alert on projection delays
- Plan for rebuilds - Design for reconstruction
Don'ts
- Don't couple projections - Each is independent
- Don't skip error handling - Log and alert on failures
- Don't ignore ordering - Events must be processed in order
- Don't over-normalize - Denormalize for query patterns