Follow this guide to create a Event Projection in Marten. This is best for flattening events into queryable documents (1 event -> 1 document) or copying data to other tables.
- •
Define the Projection Class
- •Create a
classinsrc/BookStore.ApiService/Projections/ - •Base Class:
EventProjection - •Template:
templates/Projection.cs
- •Create a
- •
Configure in Marten
- •Open
src/BookStore.ApiService/Infrastructure/Extensions/MartenConfigurationExtensions.cs - •Register:
csharp
options.Projections.Add<AuditLogProjection>(ProjectionLifecycle.Async);
- •Open
- •
Use Cases
- •History tables
- •Audit logs
- •Flattening stream data for reporting/analytics (without aggregation)
Related Skills
- •
/scaffold-multi-stream-projection: For aggregating data.