diff --git a/guides/deployment/heroku.md b/guides/deployment/heroku.md index 87c88d1163..be21c48570 100644 --- a/guides/deployment/heroku.md +++ b/guides/deployment/heroku.md @@ -16,12 +16,12 @@ Heroku is a great platform and Elixir performs well on it. However, you may run - Heroku [limits the number of simultaneous connections](https://devcenter.heroku.com/articles/http-routing#request-concurrency) as well as the [duration of each connection](https://devcenter.heroku.com/articles/limits#http-timeouts). It is common to use Elixir for real-time apps which need lots of concurrent, persistent connections, and Phoenix is capable of [handling over 2 million connections on a single server](https://www.phoenixframework.org/blog/the-road-to-2-million-websocket-connections). - Distributed clustering is not possible. - - Heroku [firewalls dynos off from one another](https://devcenter.heroku.com/articles/dynos#networking). This means things like [distributed Phoenix channels](https://dockyard.com/blog/2016/01/28/running-elixir-and-phoenix-projects-on-a-cluster-of-nodes) and [distributed tasks](https://elixir-lang.org/getting-started/mix-otp/distributed-tasks.html) will need to rely on something like Redis instead of Elixir's built-in distribution. + - Heroku [firewalls dynos off from one another](https://devcenter.heroku.com/articles/dynos#networking). This means things like [distributed Phoenix channels](https://dockyard.com/blog/2016/01/28/running-elixir-and-phoenix-projects-on-a-cluster-of-nodes) and [distributed tasks](https://hexdocs.pm/elixir/distributed-tasks.html) will need to rely on something like Redis instead of Elixir's built-in distribution. -- In-memory state such as those in [Agents](https://elixir-lang.org/getting-started/mix-otp/agent.html), [GenServers](https://elixir-lang.org/getting-started/mix-otp/genserver.html), and [ETS](https://elixir-lang.org/getting-started/mix-otp/ets.html) will be lost every 24 hours. +- In-memory state such as those in [Agents](https://hexdocs.pm/elixir/agents.html), [GenServers](https://hexdocs.pm/elixir/genservers.html), and [ETS](https://hexdocs.pm/elixir/erlang-term-storage.html) will be lost every 24 hours. - Heroku [restarts dynos](https://devcenter.heroku.com/articles/dynos#restarting) every 24 hours regardless of whether the node is healthy. -- [The built-in observer](https://elixir-lang.org/getting-started/debugging.html#observer) can't be used with Heroku. +- [The built-in observer](https://hexdocs.pm/elixir/debugging.html#observer) can't be used with Heroku. - Heroku does allow for connection into your dyno, but you won't be able to use the observer to watch the state of your dyno. If you are just getting started, or you don't expect to use the features above, Heroku should be enough for your needs. For instance, if you are migrating an existing application running on Heroku to Phoenix, keeping a similar set of features, Elixir will perform just as well or even better than your current stack. diff --git a/guides/introduction/overview.md b/guides/introduction/overview.md index a63754e554..35ef681b40 100644 --- a/guides/introduction/overview.md +++ b/guides/introduction/overview.md @@ -4,7 +4,7 @@ Phoenix is a web development framework written in Elixir which implements the se Phoenix provides the best of both worlds - high developer productivity _and_ high application performance. It also has some interesting new twists like channels for implementing realtime features and pre-compiled templates for blazing speed. -If you are already familiar with Elixir, great! If not, there are a number of places to learn. The [Elixir guides](https://elixir-lang.org/getting-started/introduction.html) and the [Elixir learning resources page](https://elixir-lang.org/learning.html) are two great places to start. +If you are already familiar with Elixir, great! If not, there are a number of places to learn. The [Elixir guides](https://hexdocs.pm/elixir/introduction.html) and the [Elixir learning resources page](https://elixir-lang.org/learning.html) are two great places to start. The guides that you are currently looking at provide an overview of all parts that make Phoenix. Here is a rundown of what they provide: diff --git a/guides/mix_tasks.md b/guides/mix_tasks.md index 8c4e1fa911..076a711f45 100644 --- a/guides/mix_tasks.md +++ b/guides/mix_tasks.md @@ -2,7 +2,7 @@ There are currently a number of built-in Phoenix-specific and Ecto-specific [Mix tasks](`Mix.Task`) available to us within a newly-generated application. We can also create our own application specific tasks. -> Note to learn more about `mix`, you can read Elixir's official [Introduction to Mix](https://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html). +> Note to learn more about `mix`, you can read Elixir's official [Introduction to Mix](https://hexdocs.pm/elixir/introduction-to-mix.html). ## Phoenix tasks diff --git a/guides/request_lifecycle.md b/guides/request_lifecycle.md index aee1b99e00..bce73eb9a9 100644 --- a/guides/request_lifecycle.md +++ b/guides/request_lifecycle.md @@ -267,7 +267,7 @@ def show(conn, %{"messenger" => messenger} = params) do end ``` -It's good to remember that the keys of the `params` map will always be strings, and that the equals sign does not represent assignment, but is instead a [pattern match](https://elixir-lang.org/getting-started/pattern-matching.html) assertion. +It's good to remember that the keys of the `params` map will always be strings, and that the equals sign does not represent assignment, but is instead a [pattern match](https://hexdocs.pm/elixir/pattern-matching.html) assertion. ### Another new template diff --git a/installer/lib/mix/tasks/phx.new.ex b/installer/lib/mix/tasks/phx.new.ex index e880431e1e..88c0592d5c 100644 --- a/installer/lib/mix/tasks/phx.new.ex +++ b/installer/lib/mix/tasks/phx.new.ex @@ -112,7 +112,7 @@ defmodule Mix.Tasks.Phx.New do ``` You can read more about umbrella projects using the - official [Elixir guide](https://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-apps.html#umbrella-projects) + official [Elixir guide](https://hexdocs.pm/elixir/dependencies-and-umbrella-projects.html#umbrella-projects) """ use Mix.Task alias Phx.New.{Generator, Project, Single, Umbrella, Web, Ecto}