Postgres Message Store Release and Porting to NodeJS

A good sign of a technology’s vitality is the appearance of clones and ports to other platforms. It’s compelling not only to the users of its native environment, but is also attracting users from other platforms. And when those users return to their home environments, they spread the word. The Eventide Project isn’t exactly taking the tech world by storm, but it is inspiring some porting activity. And we’ve made some structural changes to the toolkit to enable this work.

Message Store Database Tools Now Available as a Standalone Repo

The scripts and utilities for creating and managing the Postgres message store database have been completely isolated from the Ruby library that used to house them. The scripts are available now as a standalone GitHub repository:

These scripts are subsequently packaged with the message_store-postgres-database Ruby gem.

Message Store Database Tools Now Packaged as an NPM Module

The database definition and management scripts are also now packaged as the @eventide/postgres-message-store NPM module.

While it’s easy enough to simply clone the GitHub repo, NodeJS developers will benefit from the convenience of packaging the scripts with their ports of Eventide, and build upon them to make an experienced tailored for the Node developer experience.

Ports Under Development

So far, we’ve heard from shops in the process of either making high-fidelity clones of Eventide or building basic, low-level client libraries like Eventide’s message_store-postgres.

At present, we’re aware of ports being built in NodeJS and Go, with some tinkering happening in Elixir and .NET.

The key takeaway for the Eventide Project is the soundness of the message store design and tooling, and the projects building clients and adapters for it is a vote of confidence for the usefulness of the store to many languages and environments.

Eventide’s core contributors and designers aren’t directly involved in the implementations of any ports, but we are playing a consultative and support role.

We’re looking forward to seeing what comes of these projects, and the potential for exchanging ideas within a larger collective of implementers and designers!