Packages
tai
0.0.57
0.0.75
0.0.74
0.0.73
0.0.72
0.0.71
0.0.70
0.0.69
0.0.68
0.0.67
0.0.66
0.0.65
0.0.64
0.0.63
0.0.62
0.0.61
0.0.60
0.0.59
0.0.58
0.0.57
0.0.56
0.0.55
0.0.54
0.0.53
0.0.52
0.0.51
0.0.50
0.0.49
0.0.48
0.0.47
0.0.46
0.0.45
0.0.44
0.0.43
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.29
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
A composable, real time, market data and trade execution toolkit
Current section
Files
Jump to
Current section
Files
lib/tai/application.ex
defmodule Tai.Application do
use Application
def start(_type, _args) do
Confex.resolve_env!(:tai)
config = Tai.Config.parse()
children = [
{Tai.SystemBus, config.system_bus_registry_partitions},
Tai.EventsLogger,
{Tai.Settings, config},
Tai.Trading.PositionStore,
Tai.Trading.OrderStore,
Tai.Markets.QuoteStore,
Tai.Venues.ProductStore,
Tai.Venues.FeeStore,
Tai.Venues.AccountStore,
Tai.Venues.VenueStore,
Tai.Venues.StreamsSupervisor,
Tai.Venues.Supervisor,
Tai.Advisors.SpecStore,
Tai.Advisors.Supervisor,
Tai.Commander,
Tai.Boot
]
Supervisor.start_link(children, strategy: :one_for_one, name: Tai.Supervisor)
end
def start_phase(:venues, _start_type, _phase_args) do
Tai.Venues.Config.parse()
|> Enum.map(&Tai.Venues.VenueStore.put/1)
|> Enum.map(fn {:ok, {_, v}} -> v end)
|> Enumerati.filter(start_on_boot: true)
|> Enum.map(&Tai.Boot.register_venue/1)
|> Enum.map(fn {:ok, v} -> v end)
|> Enum.map(&Tai.Venues.Supervisor.start(&1))
Tai.Boot.close_registration()
:ok
end
end