Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Allow creating observable over eventstore connection, and add some reactive extensions to handle events. Created observables are hot and refcount, so that subscription stay alive until their is subscribers.

nuget id :

EventStore.Client.Reactive

Create observable :

var observable = connection.CreateObservable("stream-id"); //subribe from end of stream

Then deserialize events :

var subscription = connection.CreateObservable(StreamId)
                             .Deserialize<MyEvent>()
                             .Subscribe(e => Console.WriteLine("event handled : " + e.ToString())

If position matter (eg to handle checkpoints) :

 var subscription = connection.CreateObservable(StreamId)
                              .DeserializeWithPosition<MyEvent>()
                              .HandleEvent(e => Console.WriteLine("handled : " + e.ToString()))
                              .Subscribe(pos => Console.WriteLine("last position handled : " + pos));

If you want to subscribe from the beginning of stream :

var observable = connection.CreateObservable("stream-id", 0);

Custom serializer

var subscription = connection.CreateObservable(StreamId)
                             .Deserialize<MyEvent>(new CustomEventSerializer())
			     .Subscribe(e => Console.WriteLine("event handled : " + e.ToString())

About

Reactive extensions for eventstore subscriptions

Resources

Stars

5 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages