Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
DOCS HAVE MOVED
This wiki is no longer maintained and should not be used. Read the Event Store docs at docs.geteventstore.com.
The latest version of the page you are currently viewing is available here.
This wiki contains the documentation for the open source version of the Event Store. Documentation is still a work-in-progress, and pull requests are accepted gratefully! Currently our blog has a lot more information on features which are not yet well documented here - a list of posts is below.
Binaries for the open source version, and information on the commercial versions (which add management and monitoring tools as well as commercial support) are available at the Event Store website (http://www.geteventstore.com). If you have a commercial support contract, please raise support issues via ZenDesk. Our discussion forum is hosted on Google Groups.
The latest build of the .NET Client API is available as a package named EventStore.Client on NuGet. This is often more up-to-date than the version bundled with the server (which things like the test client utility use). Note: the Event Store server is versioned separately from the .NET Client API (and any others).
PLEASE NOTE: User projections are not enabled by default, however the projections engine is used internally for account management. If you want to run user projections, it is necessary to start using the
--run-projections=all command line parameter (or equivalent as per the command line options page).
- Event Sourcing Basics
- Running the Event Store
- Internal Architectural Overview
- Reserved Names
- Optimistic Concurrency & Idempotence
- Client Error Handling
- [Which API to Use?] (wiki/Which-API)
- [Stream Metadata] (wiki/Stream-Metadata-Parameters)
- [Config Options] (wiki/Command-Line-Arguments)
- Access Control Lists
- Creating a stream
- Writing to a stream
- [Reading streams] (wiki/Reading-Streams-%28HTTP%29)
- Deleting a stream
- Stream Metadata
- [Optional HTTP Headers] (wiki/Optional-Http-Headers)
- [Setup] (wiki/Architecture-Setup%28HTTP%29)
- [Security] (wiki/HTTP-Security)
- [Setting up SSL in Linux] (wiki/Setting-Up-SSL-In-Linux)
- [Setting up SSL in Windows] (wiki/Setting-Up-SSL-In-Windows)
- [Setting up Varnish in Linux] (wiki/Setting-Up-Varnish-In-Linux)
- Connection Options
- Writing to a stream
- Reading streams
- Implementing a repository
Note: Projections are still experimental and as such we have not yet documented them here. However, there are two series of blog posts about how they can be used, which are listed below under the Related Blog Posts section below.
- Implementing a Client API
##Related Blog Posts
The following blog posts talk about the Event Store and may be useful for features that aren't yet documented here. If you know of any others, please let us know!
###Event Store Blog - Getting Started Series
- Part 1 - Introduction
- Part 2 - Implementing the CommonDomain repository interface
- Part 3 - Subscriptions
###Event Store Blog - Projections Series
- Part 1 - Projections Theory
- Part 2 - A Simple SEP Projection
- Part 3 - Using State
- Intermission - A Case Study
- Part 4 - Event Matching
- Part 5 - Indexing
- Part 6 - An Indexing Use Case
- Part 7 - Multiple Streams
- Part 8 - Internal Indexing
###Rob Ashton - Projections Series
- Part 1 - Introduction to the EventStore
- Part 2 - Pushing data into the EventStore
- Part 3 - Projections in the EventStore
- Part 4 - Re-partitioning streams in the EventStore
- Part 5 - Creating a projection per stream
- Part 6 - Pumping data from Github into the EventStore
- Part 7 - Emitting new events from a projection
- Part 8 - Who is the sweariest of them all?
- Part 9 - Temporal queries in the event store
- Part 10 - Projections from multiple streams
- Part 11 - Temporal averages
- Part 12 - (Aside) Database storage and backing up
- Part 13 - Sentiment analysis of github commits
There is also a video of Greg Young's "In The Brain" session recorded at SkillsMatter in London about using projections for Complex Event Processing.
- Ensuring Writes - describes how writing works in our commercial highly available product.
- The Cost of Creating a Stream
- Various Hash Implementations (BSD Licensed!)