Skip to content

drauly/EventStore.Client.Reactive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

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

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages