Skip to content

Latest commit

 

History

History
44 lines (31 loc) · 1.59 KB

README.md

File metadata and controls

44 lines (31 loc) · 1.59 KB

ErleansProviderEcto

This library implements the Erleans provider behaviour with Ecto. A schema that represents a grain is provided and the module ErleansProviderEcto is the provider behaviour implementation.

Users must create the Ecto Repo for the grains themselves.

A migration is provided that can be used for a SQL database.

See the Erleans Elixir Example for an example of using this provider with Erleans.

Example Configuration

Configuring a Postgres Erleans provider named :postgres and setting it to the default provider:

config :erleans,
  providers: %{
    :postgres => %{
      :module => ErleansProviderEcto.Postgres,
      :args => [
        {:database, "testdb"},
        {:username, "test"},
        {:hostname, "localhost"}
      ]
    }
  },
  default_provider: :postgres

How It Works

ErleansProviderEcto uses Ecto's dynamic repo support so when booting Erleans can start up any configured providers the user configures, which may or may not use the same Repo module, and ensure they are connected before being used by any grains.

The dynamic repo is given the same name as the Erleans provider. So when the above configuration is used therepo will be named :postgres.

Running Tests

$ docker-compose up -d
$ mix deps.get
$ mix test