- Issue #90: Fixed race condition where the process loop can try to start processing a queue before it is created. Thanks to @BoeseB for reporting this bug.
Big thanks to @pretyk for contributing this feature!
- Custom ServiceFabricProxyFactory: Creation of Proxies for remoting was abstracted into
IProxyFactories
. Users can now customize how proxies are created by implementingIProxyFactories
and providing the instance toBrokerService
andBrokerClient
.
Big thanks to @Calidus for contributing this feature and bug fix!
- RoutingKey: RoutingKey value is now a Regex to provide more flexibility.
- RoutingKey: ReferenceWrapper was updated to properly serialize the RoutingKey.
- Nuget: Upgraded nuget packages (SF 4.1.409).
- SubscribeAsync: Fixed bug getting the message type name from generic type. Thanks to @tbuquet for reporting and fixing this bug!
- Nuget: Upgraded nuget packages (SF 4.0.457).
- BrokerService: BrokerService now supports both ordered and unordered queues.
- SubscribeAttribute: Adding options to configure queue type (ordered or unordered) and routingKey.
- BrokerService: BrokerServiceUnordered was removed. BrokerServiceBase was removed.
- Broker Events: Added MessagePublished event. Thanks to @BoeseB for suggesting this feature!
- Broker Events: Renamed MessageReceived event to MessageQueuedToSubscriber.
- Broker Stats: Use concurrent dictionary to allow concurrent write access to stats.
- Subscribe Retry: Added a retry strategy for when a subscriber fails to subscribe because the Broker doesn't exist yet.
- BrokerServiceUri: We recently lost the ability to specify the BrokerUri when publishing/subscribing. Added the ability to pass the BrokerUri to the BrokerServiceLocator class.
- Throttle on Failure: Added a config to slow down the processing loop when errors occur.
- Filter Broker Stats: Added ability to filter on time, Service name, or message type using query parameters in the GET broker/stats API in the demo app.
- Broker Stats: Added
GetBrokerStatsAsync()
andUnsubscribeByQueueNameAsync()
toBrokerClient
to help with monitoring and managing the Broker Service. - BrokerEvents: Added BrokerEventsManager allowing users to add custom callbacks on Broker events to implement custom logging and/or monitoring functionality.
- Demo App: Updated Demo app to .NET Core 2.2. Integrated LoadDemo into the Demo app.
- Organization: Reorganized the repository to group projects into src, test, and examples directories.
- Rename: Changed the project name to ServiceFabric.PubSub. Updated namespaces accordingly. The new Nuget package is: https://www.nuget.org/packages/SoCreate.ServiceFabric.PubSub.
- Nuget: Update Nuget packages (SF 3.3.644)
- BrokerClient: Replaced Helper classes with a single
BrokerClient
that handles all interaction with the Broker.
- Removed obsolete code: BrokerActor, RelayBrokerActor, extension methods, Helper classes. Removed the
ServiceFabric.PubSubActors.Interfaces
library. - IBrokerService: Simplified
IBrokerService
interface to haveSubscribe()
andUnsubscribe()
taking a genericReferenceWrapper
instead of multiple versions ofRegister
andUnregister
for different subscriber types.
- Routing Key: Fixed routing key issue.
- RoutingKey: Fixed hashing helper null ref issue.
- Routing Key: Added routing key support, to support attribute based messaging. Fix hashing issue in dotnet core.
- Subscriber Base Classes: Added
SubscriberStatelessServiceBase
,SubscriberStatefulServiceBase
,StatefulSubscriberServiceBootstrapper
andStatelessSubscriberServiceBootstrapper
classes to simplify managing subscriber services. Thanks @danadesrosiers.
- BrokerActor: Broker actor is now obsolete and will be removed in a future release.
- PubSubActors.Interfaces: The interfaces library will be removed as well.
- BrokerServiceLocator: Can now locate the Broker when it is in other Application.
- Nuget: Upgraded nuget packages (SF 3.3.624). Required updating BrokerServiceLocator to support V2 remoting.
- NETSTANDARD2.0: Added .NET Standard 2.0 version to the package.
- SF Remoting: Allow SF Remoting V1/V2 for full framework. Requested by alexmarshall132 and danijel-peric in issue #45.
- PartitionIds: Fix implementation of
ServiceReferenceWrapper.Equals
to allow changing partitionid's. As reported by danijel-peric in issue #44.
- GetPartitionForMessageAsync: Fix call to
GetPartitionForMessageAsync
with wrong argument. As reported by danijel-peric in issue #43.
- ServiceReferenceWrapper: Fixed null ref issue in
ServiceReferenceWrapper
after restarting broker. As reported by danijel-peric in issue #41.
- Nuget: Upgraded nuget packages (SF 3.1.283).
- Named Listeners: Added support for named listeners
- Nuget: Upgraded nuget packages (SF 3.0.472).
- Nuget: Upgraded nuget packages (SF 3.0.456).
- Sign Assemblies: Sign assemblies in packages.
- Nuget: Upgraded nuget packages (SF 3.0.232)
- WCF*: Removed WCF remoting code.
- Nuget: Upgraded nuget packages (SF 2.8.219).
- Nuget: Upgraded nuget packages (SF 2.7.198).
- Nuget: upgraded to new sdk (2.6.220).
- Nuget: upgraded to new sdk (2.6.210) and VS2017.
- BrokerServiceUnordered: Add experimental support for IReliableConcurrentQueue, using
BrokerServiceUnordered
. Used in the LoadDemo app.
- Serialization: Add custom serialization option for kotvisbj.
- Nuget: Upgraded nuget packages (SF 2.5.216).
- BrokerService: Merged PR by johnkattenhorn that changes 2 consts into properties on BrokerService.
- Nuget: Upgraded to new SDK (2.4.164).
- BrokerService: BrokerService.Subscribers is now protected, not private.
- Nuget: Upgraded to new SDK (2.4.145).
- Dispose Issue: Merged pull request by Sterlingg that fixes Dispose issue.
- Nuget: Upgraded to new SDK (2.3.311).
- ReferenceWrapper Equals: Merged pr #2 by kelvintmv. Using overridded Equals instead of == operator for
ReferenceWrapper
check.
- Nuget: Upgraded to new SDK and packages (2.3.301).
- Unregister Issue: Fixed unregister issue found by schernets.
- Helpers: Moving from extension methods to injectable helpers for test support.
- Nuget: Updated nuget packages (new SDK).
- Memory Leak: Fixed memory leak.
- BrokerService: Improved BrokerService throughput.
- Load Test Demo: Added load test demo app.
- BrokerService: Added BrokerService as counterpart of BrokerActor, so you can use your favorite programming model.