These docs are under active development, as the library develops, better docs will be added.
NodeJS library to connect to and operate on Eventide Project's Message DB.
A long time ago, in a galaxy far far away I worked at a company that used Event Sourcing and CQRS - specifically utilizing Eventide's Message DB. In that company we had a JS Message DB client library supporting usage of Message DB. I really enjoyed using that library and couldn't find a better equivalent in the wild. Since I've now left that company and the proprietary library behind, I figured it would be a good idea to make my own library to facilitate my personal usage of Message DB in hobby projects.
Via npm
npm install @doughtnerd/message-store-connector
Via yarn
yarn add @doughtnerd/message-store-connector
Everything starts with a connection.
Specifically the main export of the library is this connect
function:
import { connect } from '@doughtnerd/message-store-connector';
The connect function takes a single config argument, which looks like this:
const messageStoreConfig = {
messageStoreHost: 'localhost', // Or wherever your MessageDB is
messageStorePassword: 'password', // Or whatever your actual password is
logger: console, // The logger you want the library to use internally
};
Put it all together and you have this:
import { connect } from '@doughtnerd/message-store-connector';
const messageStoreConfig = {
messageStoreHost: 'localhost',
messageStorePassword: 'password',
logger: console,
};
connect(messageStoreConfig).then(messageStore => {
// Do the things!
})
The library supports most of the MessageDB interactions listed here
Once you have your connection, you can use the messageStore
object to interact with your MessageDB.
connect(messageStoreConfig).then(async (messageStore) => {
const streamName = 'rickRoll-43cf527b-0fa1-433f-bad0-6834b927e243'
const event = {
id: '42b85f29-088e-4c53-8ba8-e2ffa9a239ea',
type: 'UserWasRickRolled',
data: {
neverGonna: [
'Give you up',
'Let you down',
'Turn around and forget you'
]
},
metadata: {}
}
await messageStore.writeMessage(streamName, event)
})