projection-patterns

Convert event streams into queryable read models for CQRS and analytics.

Updated Feb 3, 2026
One-click install
npx skills add https://github.com/leonardoteodoroo/amino-advanced --skill projection-patterns-leonardoteodoroo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: projection-patterns
Source: https://github.com/leonardoteodoroo/amino-advanced/tree/main/.agent/skills/projection-patterns
Command: npx skills add https://github.com/leonardoteodoroo/amino-advanced --skill projection-patterns-leonardoteodoroo

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Projections patterns help you translate event streams into fast, queryable read models to support CQRS read sides, analytics dashboards, and optimized queries.

Core Features & Use Cases

  • Live projections for real-time updates
  • Catchup projections to rebuild read models from historical events
  • Persistent checkpoints to resume after restarts
  • Inline projections for strong consistency

Quick Start

Create a basic projector that subscribes to an event store and populates a read model in a database.

Frequently Asked Questions about projection-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build queryable read models from event streams in CQRS?

Projections convert event streams into fast queryable read models for CQRS by subscribing to an event store and populating a denormalized database view. This supports analytics dashboards and optimized queries.

What is the difference between live, catchup, and inline projections?

Live projections provide real-time updates, catchup projections rebuild read models from historical events, and inline projections offer strong consistency. All scenarios require idempotent replay and transactional updates for correctness.

How do I resume event stream processing after a restart without data loss?

Persistent checkpoints allow projections to resume after restarts by tracking the last processed event position. Combined with idempotent replay, this ensures your read models remain correct and no events are missed.

When do I need event denormalization for analytics dashboards?

Event denormalization is needed when translating event streams into optimized queryable read models for analytics dashboards. Projections handle this by applying transactional updates to build materialized views from your event store.

Does projection replay require idempotent updates to maintain read model correctness?

Yes, idempotent replay is required to ensure projection correctness when rebuilding read models. Transactional updates and checkpointing guarantee that reprocessing events does not duplicate or corrupt your materialized views.