I saw this really amazing product Event Store by http://geteventstore.com/ so thought i should try it. In this post i set up a store and read and write event to a stream so lets start
Step 1: Download event store for windows
http://geteventstore.com/downloads/
Step 2: Install event store
To do that unzip the downloaded zip file and open the same directory in command with admin right. Then run this command
EventStore.ClusterNode.exe –db ./db –log ./logs
Step 3: Open event store
In browser open thisĀ http://127.0.0.1:2113/
Step 4: Create a console application in VS
Step 5: Add a nuget reference
Step 6: Add a new class EventStoreServer and paste this
public class EventStoreServer { private IEventStoreConnection _connection; private void Connect() { _connection = EventStoreConnection.Create(new IPEndPoint(IPAddress.Loopback, 1113)); _connection.ConnectAsync().Wait(); } public void AddEvent(string ccceventstream) { Connect(); var event1 = new EventData(Guid.NewGuid(), "1", false, Encoding.UTF8.GetBytes("some data"), Encoding.UTF8.GetBytes("some metadata")); var event2 = new EventData(Guid.NewGuid(), "2", false, Encoding.UTF8.GetBytes("some data"),Encoding.UTF8.GetBytes("some metadata")); var event3 = new EventData(Guid.NewGuid(), "3", false,Encoding.UTF8.GetBytes("some data"),Encoding.UTF8.GetBytes("some metadata")); var event4 = new EventData(Guid.NewGuid(), "4", false,Encoding.UTF8.GetBytes("some data"),Encoding.UTF8.GetBytes("some metadata")); _connection.AppendToStreamAsync(ccceventstream, ExpectedVersion.Any, new EventData [] {event1,event2,event3,event4}).Wait(); } public void ReadEvent(string ccceventstream) { Connect(); var streamEvents = _connection.ReadStreamEventsForwardAsync(ccceventstream, 0, ccceventstream.Count(), false).Result; foreach (var events in streamEvents.Events) { Console.WriteLine("Read event with data: {0}, metadata: {1}", Encoding.UTF8.GetString(events.Event.Data),Encoding.UTF8.GetString(events.Event.Metadata)); } Console.ReadLine(); } }