Tai.Config (tai v0.0.75)

Global configuration for a tai instance. This module provides a utility function to hydrate a struct from the OTP Application environment.

It can be configured with the following options:

# [default: 10_000] [optional] Adapter start timeout in milliseconds
config :tai, adapter_timeout: 60_000

# [default: nil] [optional] Handler to call after all venues & advisors have successfully started on boot
config :tai, after_boot: {Mod, :func_name, []}

# [default: nil] [optional] Handler to call after any venues or advisors have failed to start on boot
config :tai, after_boot_error: {Mod, :func_name, []}

# [default: false] [optional] Flag which enables the forwarding of each order book change set to the system bus
config :tai, broadcast_change_set: true

# [default: 5] [optional] Maximum pool size
config :tai, order_workers: 5

# [default: 2] [optional] Maximum number of workers created if pool is empty
config :tai, order_workers_max_overflow: 2

# [default: false] [optional] Flag which enables the sending of orders to the venue. When this is `false`, it
# acts a safety net by enqueueing and skipping the order transmission to the venue. This is useful in
# development to prevent accidently sending live orders.
config :tai, send_orders: true

# [default: System.schedulers_online] [optional] Number of processes that can forward internal pubsub messages.
# Defaults to the number of CPU's available in the Erlang VM `System.schedulers_online/0`.
config :tai, system_bus_registry_partitions: 2

# [default: %{}] [optional] Map of configured venues. See below for more details.
config :tai, venues: %{}

# [default: %{}] [optional] Map of configured fleets. See below for more details.
config :tai, fleets: %{}

Link to this section Summary

Link to this section Types

Specs

boot_args() :: term()

Specs

Specs

func_name() :: atom()

Specs

handler() :: module()

Specs

t() :: %Tai.Config{
  adapter_timeout: pos_integer(),
  after_boot:
    {handler(), func_name()} | {handler(), func_name(), boot_args()} | nil,
  after_boot_error:
    {handler(), func_name()} | {handler(), func_name(), boot_args()} | nil,
  broadcast_change_set: boolean(),
  fleets: map(),
  logger: module(),
  order_transition_workers: pos_integer(),
  order_workers: pos_integer(),
  order_workers_max_overflow: non_neg_integer(),
  send_orders: boolean(),
  system_bus_registry_partitions: pos_integer(),
  venues: map()
}

Link to this section Functions

Specs

get(atom()) :: term()

Specs

get(env(), atom()) :: term()
Link to this function

get(env, key, default)

Specs

get(env(), atom(), term()) :: term()
Link to this function

parse(env \\ Application.get_all_env(:tai))

Specs

parse(env()) :: t()