defmodule Ravix do @moduledoc """ Ravix is a RavenDB Driver written in Elixir """ use Application @doc """ Initializes three processes registers to facilitate grouping sessions, connections and nodes. - :sessions = Stores sessions by their UUIDs - :connections = Stores the connections processes, based on the Repo Name - :request_executors = Stores the node executors data """ def start(_type, _args) do children = [ {Registry, [keys: :unique, name: :sessions]}, {Registry, [keys: :unique, name: :connections]}, {Registry, [keys: :duplicate, name: :request_executors]}, {Registry, [keys: :unique, name: :request_executor_pools]} ] opts = [strategy: :one_for_one, name: Ravix.Supervisor] Supervisor.start_link(children, opts) end end