Given 1 Handler subscribed to 2 streams and publishing the same event twice to both streams
.. But would expect
class Program
{
static void Main(string[] args)
{
connection.ConnectAsync().Wait();
var settings = PersistentSubscriptionSettings
.Create()
.StartFromCurrent()
.WithMessageTimeoutOf(new TimeSpan(100));
try {
connection.CreatePersistentSubscriptionAsync(
"stream", "group",
settings, new UserCredentials("admin", "changeit")
).Wait();
} catch{ }
try {
connection.CreatePersistentSubscriptionAsync(
"stream2", "group",
settings, new UserCredentials("admin", "changeit")
).Wait();
} catch{ }
var event1 = new EventData(Guid.NewGuid(),"event", false,Encoding.UTF8.GetBytes("Event 1"),null);
new Handler(connection);
connection.AppendToStreamAsync("stream", ExpectedVersion.Any, event1);
connection.AppendToStreamAsync("stream", ExpectedVersion.Any, event1);
connection.AppendToStreamAsync("stream2", ExpectedVersion.Any, event1);
connection.AppendToStreamAsync("stream2", ExpectedVersion.Any, event1);
Console.ReadKey();
}
}
class Handler
{
public Handler(IEventStoreConnection connection) {
connection.ConnectToPersistentSubscription(
"stream", "group",
Handle, (s, r, e) => {}, new UserCredentials("admin", "changeit"),
1, false
);
connection.ConnectToPersistentSubscription(
"stream2", "group",
Handle, (s, r, e) => {}, new UserCredentials("admin", "changeit"),
1, false
);
}
void Handle(EventStorePersistentSubscriptionBase subscription, ResolvedEvent @event) {
Console.WriteLine($"Handler Received: Id '{@event.Event.EventId}' On Stream: '{@event.Event.EventStreamId}' ");
subscription.Acknowledge(@event);
}
}