Release Notes & History
Release Notes & History
Section titled “Release Notes & History”This log tracks major feature updates and version milestones of the Sharpino library.
- Version 6.2.7: Updated library dependencies across all core and sample projects.
- Version 6.2.6:
- Physical Read/Write DB Separation: Introduced separate
readConnectionandwriteConnectionstrings inEventStore(PgStorage). Writes (appending events, snapshots) target the primary write database, while queries and state view hydrations can target read replicas for eventual consistency. - MailboxProcessor Execution: Reintroduced
MailboxProcessorfor single-stream / aggregate commands (#if USING_MAILBOXPROCESSOR), providing actor-based sequential execution per aggregate.
- Physical Read/Write DB Separation: Introduced separate
- Version 6.2.5:
- Integrated
AsyncKeyedLocklocker for high-concurrency keyed aggregate locks. - Added configuration parameter
SemaphoreSlimLimitto tune concurrent command throttling.
- Integrated
- Extended Decision Boundary: Introduces cross-aggregates constraint lambda execution (
runThreeAggregateCommandsMdAsync3, etc.) that allows locking external streams under optimistic concurrency check. - Added lazy constraint variations of command runner APIs.
- Postgres Optimistic Lock Control: Switched optimistic lock control validation entirely to Postgres stored procedures.
- Cache Memory Limits: Introduced L1 configuration parameters to limit cache count and memory footprints:
Cache:AggregateCacheMaxSizeCache:AggregateCacheMaxMemoryMegabytesCache:AggregateCacheMemoryLoadThreshold
- Postgres LISTEN/NOTIFY Backplane: Added support for L1 cache eviction messages and L2 synchronization using PG native listen/notify channels.
- Snapshot Upcasting: Native support to evolve, replace, and upcast database-level snapshots.
- GDPR compliance updates: Added async methods to erase or replace sensitive data in events and snapshots.
4.8.x - 4.9.x
Section titled “4.8.x - 4.9.x”- Moved settings from
sharpinoSettings.jsonto the standard ASP.NETappSettings.json. - Added standard cancellation token parameters to all core StateView and CommandHandler functions.
- Introduced predicate-based soft-deletion for aggregates.
- Refreshable Details: Introduced
RefreshableandRefreshableAsynccached composite read models. - Async command executions: Migrated core database calls and cache fetches to async/task-based patterns.
- Integrated state caches (
StateCache2). - Transport Tycoon sample (
Sample 8) added.
- Ditched Newtonsoft.Json in favor of FsPickler binary and JSON serialization support.
- Replaced Kafka notifications with PostgreSQL-centric notification triggers and standard message senders.
