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.
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
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
.
$ docker-compose up -d
$ mix deps.get
$ mix test