EventStore 3.0.0-rc9

A bunch of changes are out, likely this will be going straight to release (most of the 9 have been internal or commercial things). There are currently 1-2 bug fixes sitting on dev that are not included and will be but they are very minor (such as including headers for CORS).

Of most importance to people is probably the first two breaking changes listed (SingleNode is gone but clusternode by default works the same way) and al the Sync overloads in client api have been removed.

Happy Coding!


This preview release contains numerous improvements and fixes over RC2 of Event Store 3.0.0, including:

  • Synchronous methods in the Client API have been removed in favour of their asynchronous counterparts. To continue with the previous semantics, use .Result or .Wait() on calls
  • EventStore.SingleNode.exe has been removed in favour of a reconfiguredEventStore.ClusterNode.exe which runs as a single node if a larger cluster size is not specified
  • Binaries for Mac OS X and Linux are statically linked with Mono; no runtime installation is required
  • Configuration files are now written in YAML instead of JSON
  • Default configuration file locations are no longer assumed
  • Options parsing now uses PowerArgs instead of NDesk.Options, which allows options to be specified in a wider variety of ways.
  • Fixed bugs with reading link events pointing to events which no longer exist because of$maxCount, $truncateBefore or stream deletion
  • All necessary CORS headers to run the new user interface (see EventStore/EventStore.UI) are now allowed
  • Fix automatically collapsing preview in existing UI
  • Introduced new media types, application/ andapplication/ for the previous syntax which mixes request metadata with event metadata and data in request bodies.
  • POSTing to a stream with the media type application/json, application/xml or text/xmlassume a single event is contained in the body. Event ID and expected version can be specified via headers on the request, or an idempotent URI can be posted to allow for retries if client-side ID generation is not possible
  • Fixed failover of projections in a clustered environment
  • Added configurable timeouts for gossip in a cluster
  • Added a new overload for gossip seeds which allows a host header to be set if necessary


i tested to port the “getting-started-with-event-store” example to the new RC9 cleint api, but now you have a lot of methods with ambignous invocations.


EventStoreTransaction.Write(params EventData[])


IEventStoreConnection.AppendToStreamAsync(string streamName, int expectedVersion, params EventData[])
IEventStoreConnection.AppendToStreamAsync(string streamName, int expectedVersion, IEnumerable)

Even if your data type is IEnumerable you need to explicit cast it in the method call to IEnumerable or your get a compiler error for a ambignous invocation.

Kind regards,


Thanks we will update the example

I noticed the Getting-Started wiki example using curl to upload an event no longer works because it uses the old Content-Type and embeds the event type. I edited the wiki page to include an rc9 version alongside the older one. It looks a bit messy, but will get people by.