Release Notes & History
Release Notes & History
Section titled “Release Notes & History”This log tracks major feature updates and version milestones of the Sharpino library.
- 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.
