Beispiel #1
0
        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...
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #8
0
 public NetworkMonkey(EventStoreWriter eventStoreWriter)
 {
     _eventStoreWriter = eventStoreWriter;
 }