Introduction
Introduction
Welcome to the EventStoreDB documentation.
EventStoreDB is a database designed for Event Sourcing. This documentation introduces key concepts of EventStoreDB and explains its installation, configuration, and operational concerns.
EventStoreDB is licensed under Event Store License v2 (ESLv2), meaning that anyone can access and use it, but enterprise features are only enabled with a valid license key.
Note
Although the source code for EventStoreDB is available to view, the ESLv2 license is not an OSI-approved Open Source License.
What's new
Find out what's new in this release to get details on new features and other changes.
Getting started
Check the getting started guide for resources on the principles of EventStoreDB, Event Sourcing, database installation guidelines and choosing a client SDK.
Support
EventStoreDB community
Users of EventStoreDB can use the community forum for questions, discussions and getting help from community members.
Enterprise customers
Customers with the paid support plan can open tickets using the support portal.
Issues
We track most of the issues openly in the EventStoreDB repository on GitHub. Before opening an issue, please ensure that a similar issue hasn't been opened already. Also, try searching closed issues that might contain a solution or workaround for your problem.
When opening an issue, follow our guidelines for bug reports and feature requests. By doing so, you will greatly help us to solve your concerns most efficiently.
Protocols, clients, and SDKs
EventStoreDB supports one client protocol, which is described below. The older TCP client API has been deprecated in version 20.2 and removed in version 24.2. The final version with TCP API support is 23.10. More information can be found in our blog post.
Since version 24.6, the legacy protocol is available as a licensed plugin available for Event Store customers.
Client protocol
The client protocol is based on open standards and is widely supported by many programming languages. EventStoreDB uses gRPC to communicate between the cluster nodes as well as for client-server communication.
When developing software that uses EventStoreDB, we recommend using one of the official SDKs.
EventStoreDB supported clients
- Python: pyeventsourcing/esdbclient
- Node.js (JavaScript/TypeScript): EventStore/EventStore-Client-NodeJS
- Java: (EventStore/EventStoreDB-Client-Java
- .NET: EventStore/EventStore-Client-Dotnet
- Go: EventStore/EventStore-Client-Go
- Rust: EventStore/EventStoreDB-Client-Rust
Read more in the gRPC clients documentation.
Community developed clients
HTTP
EventStoreDB also offers an HTTP-based interface. It consists of the REST-oriented API, and a realtime subscription feature based on the AtomPub protocol. As it operates over HTTP, this is less efficient, but nearly every environment supports it.
Find out more about configuring the HTTP protocol on the HTTP configuration page.
Deprecation Note
The current AtomPub-based HTTP application API is disabled by default since v20 of EventStoreDB. You can enable it by adding an option to the server configuration. Although we plan to remove AtomPub support from future server versions, the server management HTTP API will remain available. You need to enable the AtomPub protocol to have a fully functioning database user interface.
Learn more about the EventStoreDB HTTP interface in the HTTP documentation.