Sha256: 866a9a10d099e8ff53e5b9e30c26254d648270595175478865c1c0f41002a085

Contents?: true

Size: 1013 Bytes

Versions: 1

Compression:

Stored size: 1013 Bytes

Contents

# EsReadModel

An opinionated read model framework for EventStore.

Your reducer can be anything that responds to #call.
It will receive two arguments -- the current state and the event.
The current state will be nil if no events have bee processed yet.
The reducer function must return the new state.

## Exmple usage

```[ruby]
require 'rack/cors'
require_relative './lib/es_readmodel'
require_relative './active_users'
require_relative './list_users'
require_relative './get_user_details'

ENV['RACK_ENV'] = 'none'
ENV['readmodel.name'] = 'users'

use Rack::Cors do
  allow do
    origins '*'
    resource '*', headers: :any, methods: :any, max_age: 0
  end
end

use EsReadModel::Subscriber,
  es_host:     ENV['ES_HOST'],
  es_port:     ENV['ES_PORT'],
  es_username: ENV['ES_USERNAME'],
  es_password: ENV['ES_PASSWORD'],
  reducer:     ActiveUsers.new,
  listener:    EsReadModel::Logger.new

run EsReadModel::Api.new(
  '/users'          => ListUsers.new,
  '/users/:user_id' => GetUserDetails.new
)

```

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
es-readmodel-0.0.1 README.md