- Major improvements
- Support for the ASP.NET Core hosting API (Microsoft.Extensions.Hosting). Thanks to @galvesribeiro!
- Replacement of the custom implementation of named options with Microsoft.Extensions.Options.
- EventHub stream provider got upgrade to EvenHub 2.2.1 and is also compatible with 3.0.0.
- Old dead entries in the cluster membership table now get automatically cleaned up, which is helpful for hosting environments that use new IP endpoints for restarted silos.
- Hosted client that enables efficient hosting of frontend code within the silo process is now enabled by default.
- Support for
IHostEnvironmentStatisticson Linux, which enables CPU and memory metrics as well as load shedding. Thanks to @martinothamar!
This release is backward compatible with 2.0.* releases, which allows for in-place upgrade of a running cluster.
Three new NuGet packages were added:
- No changes breaking the wire protocol or persisted state that would break a rolling upgrade
- Migration to Microsoft.Extensions.Options 2.1.1 (#5385) requires a namespace change in the code
Refactored stream batch behaviors to support batch consumption.(#5425) technically a breaking change due to the changes to the batch streaming API. However, it shouldn't break any working application code because the batching functionality wasn't fully wired previously.
This release is backward-compatible with 2.x releases.
- Added 'First' and 'Last' to grain lifecycle stages. (#5248)
- Avoid emitting assembly-level GeneratedCodeAttribute (#5270)
- Use alias-qualified name in GetBindingFlagsParenthesizedExpressionSyntax (#5269)
- Don't allow read only transaction participants to be selected as the manager (#5267)
- Add configurable timeout to wait for queued messages being forwarded (#5268)
- Sort out LocalGrainDirectory shutdown sequence (#5276)
- Add CollectionAge validation to GrainCollectionOptions (#5290)
- Optimize memory allocation with custom EqualityComparer (#5210)
- Always Interleave modified to also be interleavable. (#5344)
- Batching batch containers pulling agent retrieves from cache (#5336)
- Invalidate activation cache entries from old epochs (#5352)
- Change usages of TypeInfo back to Type (#5338)
- Microsoft.Extensions.Hosting support (#5261, #5355)
- Persistent state facet (#5373)
- Updates XML documentation to call out prereq of
- Enable tx test kit pkg (#5380)
- Update to Microsoft.Extensions.Options 2.1.1 (#5385)
- Mark key legacy types/methods as [Obsolete] (#5239)
- Upgrade to EventHub 2.2.1 (#5384)
- Mark ILBasedSerializer as obsolete (#5396)
- Add event on gateway count changed (#5133)
- Enable HostedClient by default (#5395)
- Enable "cleaning" of all dead entries in the membership table (#5389, #5455)
- Remove delegate allocation from interner (#5410)
- Remove response callback using a single operation (#5406)
- Throw during startup if no grain classes/interfaces in app parts (#5413)
- Fix OneWay cache invalidation (#5401)
- Adds a LoadSheddingValidator class (#5400, #5416)
- Linux version of IHostEnvironmentStatistics (#5423)
Non-breaking bug fixes
- Fix invalid comparison in TransactionAgent (#5289)
- Fix package dependency condition for Microsoft.Orleans.Transactions. (#5307)
- Fix defensive check in LogConsistentGrain (#5319)
- Fix package versioning in csproj files (#5333)
- Fix #5342: Incorrect specification of global alias (#5343)
- Add handling when pulling agent fails RegisterAsProducer to pubsub (#5354)
- Use grain state type when deserializing json state in azure table storage (#4994)
- Pulling agent losing subscriptions fix (#5372)
- Fix #5398: AmbiguousMatchException in code generator (#5407)