How to start applications concurrently in 1.15-otp-26?

The announcement for 1.15 says:

Furthermore, Erlang/OTP 26 allows us to start applications concurrently and cache the code path lookups, decreasing the cost of booting applications. The combination of Elixir v1.15 and Erlang/OTP 26 should also reduce the boot time of applications, such as when starting iex -S mix or running a single test with mix test .

In the elixir repo I see ‘concurrently’ in 2 places and they both default to not-concurrent, so I’m assuming my stuff does not start concurrently by default. … but the announcement looks like it runs stuff concurrently by default as the graph showing the speed up is titled simply time mix run -e 1

Do I need to configure concurrent app starting in 1.15-otp-26?

The docs explain that :start_concurrently is false by default.

This would be done for backwards compatibility so that app starting order is preserved by default.

1 Like

I see where I was confused, I was mixing start_concurrently up as a command line flag; I had tried setting default_task: "start_concurrently" in my Mix.Project and set an alias of start_concurrently to app.start --start_concurrently which didn’t do anything different.

For other sleepless devs that copy-paste examples more than we’re willing to admit, it’s a setting in your project config:

def project do
 [
  ... 
    start_concurrently: true
 ]
1 Like