Purview EventSourcing Wiki
Purview EventSourcing Wiki
Section titled “Purview EventSourcing Wiki”This wiki is the project documentation hub for framework features, provider capabilities, and release workflow.
Start here
Section titled “Start here”- Getting Started
- Guarantees and Limitations
- Solution Design Guide
- Solution Design Worksheet
- Provider Feature Matrix
- Provider Capabilities
- Transactional Outbox
- Transaction Guarantees
- Event Contract Manifest
- Source Generator Performance
- Runtime Performance
- Dependency Guardrails
- Source Generator Behaviors
- Source Generator Code Fixes
- SQL Server Guide
- Shared Testing Framework
- Release Flow
Feature highlights
Section titled “Feature highlights”- Core framework (
Purview.EventSourcing)AggregateBase,IEventStore,IQueryableEventStore, andIEventStoreTransactionFactory.- Transaction guarantees: atomic requirements, best-effort fallback, and failure behavior.
- Snapshot schema versioning: compatibility detection and event-replay rebuilds.
- Source-generated aggregate events/command wiring from partial methods.
- Provider-agnostic aggregate load/save/query APIs.
- Solution design
- Paper-first worksheets for aggregate boundaries, commands, events, relationships, and event streams.
- Guidance for relational data, value objects, validation layers, and schema evolution.
- Storage providers
- SQL Server / Azure SQL: append-only event streams, internal replay snapshots, and optional SQL query snapshots with transaction coordination.
- PostgreSQL: append-only event streams, internal replay snapshots, and optional PostgreSQL JSONB query snapshots.
- Azure Storage: table-backed event streams with blob support for snapshots/large payloads.
- MongoDB: event streams plus an optional MongoDB query snapshot store.
- Cosmos DB: optional query snapshot store.
- In-memory provider: non-persistent event/snapshot store for local/test scenarios.
- Validation adapters: FluentValidation and ZodSharp adapters for
IAggregateValidator<T>. - SQL snapshot translation distinguishes between provider-converted scalar value objects and directly mapped complex snapshot graphs; see the provider matrix and SQL guide for details.
- Generator behavior
[Aggregate]supports no base, directAggregateBase, and transitive base-chain inheritance.- Property hooks are property-scoped across generated events that map that property.
On<Property>Changedruns inApply(...)(including replay);On<Property>Changingruns on command/event-raise path only.- Event hooks (
OnRaising...,OnRaised...,OnApplied...) are event-scoped.