public ChatClient(string streamPath, string userName) { _userName = userName; string key = "EventStore:BaseUrl"; string baseUrl = System.Configuration.ConfigurationManager.AppSettings[key]; if (string.IsNullOrEmpty(baseUrl)) { throw new Exception("AppSetting '{0}' has not been set".FormatWith(key)); } _eventStoreReader = new EventStoreReader(baseUrl, streamPath); _eventStoreWriter = new EventStoreWriter(baseUrl, streamPath); _messageRepository = new MessageRepository(_eventStoreReader); //_historyLogger = new LocalHistoryLogger(userName); //_historyReader = new LocalHistoryReader(userName); Feed = new ChatFeed(_messageRepository, _cancellationTokenSource.Token); _publisher = new ChatPublisher(); //_publisher.Subscribe(_historyLogger); _publisher.Subscribe(_eventStoreWriter); Queue = new ChatQueue(); Queue.Subscribe(_publisher); _publisher.Subscribe(Queue); // CAUTION? - two way loop... }
private IEnumerable <IEngine <M> > CreateEngines <M>(int batchSize) where M : new() { yield return(new TplNetEngine <M>(new M(), batchSize, EventStoreWriter.Create())); yield return(new AkkaEngine <M>(new M(), batchSize, EventStoreWriter.Create())); yield return(new TplDataflowEngine <M>(new M(), batchSize, EventStoreWriter.Create())); yield return(new DisruptorEngine <M>(new M(), batchSize, EventStoreWriter.Create())); }
public async Task Append() { EventStoreWriter sut = await GetSut(); var @event = new SimpleEvent(); await sut.AppendAsync("foo-1", new List <IEvent> { @event }, DomainObjectVersion.Any); }
public async Task <EventStoreWriter> GetSut() { IEventStoreConnection con = await LocalConfig.GetConnection(); var serializer = new JsonEventSerializer(new EventTypeResolver()); var transformer = new EventTransformator(serializer); var sut = new EventStoreWriter(con, transformer); return(sut); }
public void SingleEventPerEventStoreCall() { var journalWriter = EventStoreWriter.Create(); var sw = new Stopwatch(); Command[] commands = new Command[1]; sw.Start(); var tasks = Enumerable .Range(0, 10000) .Select(i => journalWriter.AppendAsync(commands)).ToArray(); Task.WaitAll(tasks); sw.Stop(); Console.WriteLine("elapsed: " + sw.Elapsed); journalWriter.Dispose(); }
public void Requests_for_index_writes_are_forwarded_to_index_writer_only() { var s = CreateTestProbe(); var b = CreateTestProbe(); var i = CreateTestProbe(); var c = CreateTestProbe(); var writer = Sys.ActorOf(EventStoreWriter.CreateProps(s, b, i, c, new GlobalOptions())); writer.Tell(new ProjectionIndexPersistenceRequest("a", 1, 1)); i.ExpectMsg <ProjectionIndexPersistenceRequest>(); b.ExpectNoMsg(NoMsgTimeout); s.ExpectNoMsg(NoMsgTimeout); c.ExpectNoMsg(NoMsgTimeout); }
public void Requests_with_any_version_are_forwarded_to_buffered_writer_only() { var s = CreateTestProbe(); var b = CreateTestProbe(); var i = CreateTestProbe(); var c = CreateTestProbe(); var writer = Sys.ActorOf(EventStoreWriter.CreateProps(s, b, i, c, new GlobalOptions())); writer.Tell(new PersistenceRequest("a", ExpectedSequence.Any, new[] { new UnpersistedEvent("a", new object()) })); b.ExpectMsg <PersistenceRequest>(); s.ExpectNoMsg(NoMsgTimeout); i.ExpectNoMsg(NoMsgTimeout); c.ExpectNoMsg(NoMsgTimeout); }
public NetworkMonkey(EventStoreWriter eventStoreWriter) { _eventStoreWriter = eventStoreWriter; }