Zebus Versions Save

A lightweight Peer to Peer Service Bus

v3.14.1

5 months ago
  • Bump Zebus.Contracts version

v3.14.0

5 months ago
  • Support auto-subscription to routable messages
  • Make the hostname of the inbound endpoint configurable
  • Skip scanning of the System.Data.SqlClient assembly

v3.13.3

7 months ago
  • Improve dead peer detector behavior when the peer repository is not responding
  • Show BindingKey contents when serialized to JSON

v3.13.2

1 year ago
  • Add storage times to persistence storage report
  • Rename IReporter interface to IPersistenceReporter

v3.13.1

1 year ago
  • Add message report details per message type in Persistence
  • Clean-up IReporter interface

v3.13.0

1 year ago
  • Use ReadOnlyMemory<byte> instead of Stream for TransportMessage content (breaking change)
  • Log message ID on deserialization error

v3.12.0

1 year ago
  • Support custom startup subscriptions on message handlers

SubscriptionModeAttribute can now be configured with the type of a custom IStartupSubscriber. The startup subscriber will be used to create the startup subscriptions for the target message handler.

Complete example:

[SubscriptionMode(typeof(StartupSubscriber))]
public class CustomSubscriptionHandler : IMessageHandler<RoutableEvent>
{
    public void Handle(RoutableEvent message)
    {
    }

    public class StartupSubscriber : IStartupSubscriber
    {
        private readonly IBus _bus;

        public StartupSubscriber(IBus bus)
        {
            _bus = bus;
        }

        public IEnumerable<BindingKey> GetStartupSubscriptionBindingKeys(Type messageType)
        {
            if (messageType != typeof(RoutableEvent))
                throw new NotSupportedException();

            yield return new BindingKey(_bus.PeerId.ToString());
        }
    }
}

v3.11.0

1 year ago
  • Support collections for routing members (breaking change)

Subscriptions can now match collection members using the following syntax:

var subscription = Subscription.Matching<TestCommand>(x => x.IdArray.Contains(123));

Note that Contains is the only supported operator for collections.

v3.10.1

1 year ago
  • Downgrade CompareNETObjects to 4.71.0 because of a breaking change

v3.10.0

1 year ago
  • Add command to remove message from persistence
  • Avoid reusing directory peers that failed (reduce register or subscription latency when a directory peer is down)
  • Add IBusConfiguration.FaultedDirectoryRetryDelay (breaking change)
  • Consider async canceled invocations as failed
  • Use FQDN instead of machine name in endpoints (#105)
  • Add TransportMessage serialization methods
  • Replace log4net with Microsoft.Extensions.Logging.Abstractions (#103)
  • Update dependencies:
    • log4net: 2.0.14
    • protobuf-net: 3.0.101
    • AutoFixture: 4.17.0
    • CompareNETObjects: 4.76.0
    • Moq: 4.17.2