Announcing Eventide v2

We’re super excited to announce that Eventide v2 has been released! Eventide has been in production for five years now, and open-sourced for four years. The v2 release marks a major leap forward for the toolkit and opens the door for exiting new features coming in the v2 generation of the stack.

The release marks the dividing line between the v1 product generation and the v2 product generation. The v2 generation features will built on top of the new baseline, and all subsequent v2 feature releases will be additive and backward compatible to this initial v2 release.

The v2 release is a breaking change to the stack and to the message store, but it’s entirely backward compatible with your application code build on Eventide. You won’t have any changes to make to the services and components you’ve built with Eventide. But you will have to perform some updates on your message store database.

Additionally, the all tests in the v2 stack have been ported and updated to the new version of Test Bench released in October.

For details about the the changes made to v2, see:

The significance is that the Eventide v2 framework code will not run on a v1 message store database, and the v2 message store database will not run under the v1 code. In order to run the v2 code, the message store has to be updated to the v2 schema.

The update is quite simple and is entirely automated. Here are the instructions for running the update script:

The most significant changes in this release are to the message store itself, the low-level libraries that sit on top of the message store, and a few rippling changes to higher-level parts of the stack in response to lower-level changes.

The message store is now entirely self-contained and is not dependent on the Ruby client implementation at all. In the past, some messaging patterns like Pub/Sub and Consumer Groups were features of the Ruby implementation. They are now features of the message store implementation that the Ruby implementation just uses.

Every basic event sourcing and message processing feature of the message store is now available to every programming language that has Postgres support. Polyglot implementations of message store applications and services are now a lot easier.

Subsequently, the message store is now its own separate open source project in it’s own GitHub org:

The Message DB project is still principally managed by the Eventide Project, but it’s not bound specifically to Eventide’s Ruby implementation. To a great extent, Eventide can now be seen as a client implementation built for Message DB.

As hard as the work was to arrive at the initial v2 release, the hard work of the v2-generation features now begins. We have only arrived at the line in the sand beyond which generation 2 features are possible, and the generation 3 roadmap can be glimpsed. The next few months will see a succession of really powerful features being added to the Eventide stack that will make it easier for just about anyone to get started with evented system. Despite a little burn out from the v2 effort, we’re excited to get back to work after a short break for the year-end holidays.

We have a rather complete set of docs. If you’re new to Eventide, the docs are a good place to get started:

And we encourage everyone to engage conversationally in the Eventide Slack:

Onward and upward!