Event Store blog - page 3

Murphy

News
,

As all of us who have released production software before know, if something totally rare and unseen will happen it almost always happens the day of release. In our shared career histories, we’ve personally seen many such examples: routers going bad, disks failing, servers with bad memory, admins blocking the ports you use on the firewalls, admins switching from two-phase to three-phase commit on the DTC (why did we increase in latency by 40%?!), and...


Testing Event Store HA

Articles
,

As we prepare to release Event Store 2.0.0 binaries (the source code was just merged to the master branch over on GitHub), we also will be opening up access to one of the test environments that we’ve been using for our commercial high availability clustered product, Event Store HA. We get many questions asking how the clustered version behaves during network partitions and server failures – now you can see for yourself! The cluster in...


Catch-up subscriptions with the Event Store

Tutorials
,

We have had many questions about how to use the catch-up subscriptions in the C# Event Store Client API. In this post I’ll build out a simple example of a console application which receives a callback each time an event is written to the built-in statistics stream. Contrary to what some have thought, catch-up subscriptions are implemented as part of the client, and have been available in the client API version 1.1.0 which has been...


Support for Single Node (Open Source) available

News
,

It seems there are many of you happy with the Event Store running on a single node (and therefore the open source version) in production but still would like to buy support for it. We are therefore happy to oblige. The offering has now been updated to allow a support contract to be purchased to run the Event Store on a single node. This is provided on the same basis as the support for the...


Why can’t I update an event?

Articles
,

Last week on a call with someone the question came up about the Event Store about why can they not update and event and how should they handle the case where they need to. The conversation that came out of this was very rich in architectural insight into how the event store works as well as overall event sourcing understanding so I thought that it would be worth spending a bit of time to write...


Updated repository sample code

News
,

As you may be aware, we’re removing the $streamCreated event which currently appears in all streams in favour of a metadata stream. This is currently done on the development branch, and can affect how you compute expected versions for streams. I’ve updated the sample code for the CommonDomain repository previously shown in the getting started series on the WithoutStreamCreated branch. https://github.com/EventStore/getting-started-with-event-store/tree/WithoutStreamCreated Specifically note the changes in the save method and in the get specific version...


Projections 8: internal indexing

Tutorials
,

In the last post we introduced the new concept of fromStreams([]) that will join multiple streams into a single stream for your fold to be run against. We also introduced options and two options that can be used to control the re-ordering behaviour in a distributed environment. In this post we are going to look at how this concept is used internally in the Event Store in order to provide indexing of queries. Let’s propose...


Projections 7: Multiple Streams

Tutorials
,

Up until this point we have only used two event selection methods for our projections. We have used fromStream(‘stream’) which will select all of the events in a stream and we have used fromAll() which selects all events in the system. There is another quite useful selection that will move us from SEP (Simple Event Processing) to CEP (Complex Event Processing). This is the ability to select between multiple streams. To select from multiple streams...


Ensuring writes – multi-node replication

Articles
,

We have gotten the question very often how the multi-node version works with replication. After typing it up about five times in email I figured it might be valuable to do a longer write-up that we can suck into our documentation (and a blog post). One could quite easily put the Event Store Open Source version running on a virtual machine with data storage on a SAN. If the first machine goes wrong for some...


Projections 6: An indexing use case

Tutorials
,

As we went through in Projections 5 : Indexing, the linkTo() function is capable of emitting pointers to another stream. This can allow you to break apart streams in order to change their partitioning and to allow fast indexing. In this post we will look at a use case of how you can use this functionality. I have seen no less than 10 custom auditing systems for nservicebus. Everyone seems to want to build out...