Quickstart

Install

npm i --save serverless-cqrs
npm i --save serverless-cqrs.memory-adapter

Usage

To start, you need Actions and a Reducer. So let's write simple ones:

actions.js
const actions = {
  addTodo: (state, payload) => {
    if (!payload.title) throw new Error('titleMissing')
    
    return [{
      type: 'TodoAdded',
      title: payload.title,
      at: Date.now(),
    }]
  }
}

module.exports = actions

Above we have a basic action and reducer.

  • The action ,addTodo, does some basic validation to check the presence of a title and if it succeeds, returns a new event with the type TodoAdded.

  • When that event is run through the reducer, a new todo is appended to the list.

Next, we build an adapter to help us persist the events.

This adapter will let us persist events and read-model projections in memory.

Finally, we use these to build our read and write model.

That's it!

Try it live

Last updated

Was this helpful?