↓ Ir para o conteúdo principal

← todas as notas

📎 Webclip

Where does Elixir/erlang fit into the microservices approach?

The question asks how Elixir and Erlang fit with Docker and microservices, especially around dev-prod parity, immutable containers, hot code upgrades, and release strategies like blue/green or canary deployments. It also asks whether Elixir is best used as ordinary microservices or as part of a more integrated OTP system.

Reading notes
#

  • The questioner says Elixir encourages multiple decoupled applications and hot code upgrades, but wonders how that fits with Docker’s immutability and with deployment patterns such as blue/green and canary releases.
  • The accepted answer says Elixir and Erlang are built for distributed systems, and that this is already visible in applications, processes, supervision trees, and runtime tooling.
  • It says applications are started and stopped as units, have a unified directory structure and configuration API, and include the supervision tree that contains processes and state.
  • It says this structure gives developers a clearer way to reason about startup, state, and crash behavior in production.
  • It says Erlang/Elixir already provide communication and serialization mechanisms for distributed nodes, so machines can talk by name and shared secret without needing HTTP and JSON.
  • It says microservices are not the main issue at that point, because the system is already made of isolated processes grouped into applications.
  • It says applications can be deployed together or split across nodes, and that the same design also allows running them in one node if microservices complexity is not wanted immediately.
  • The follow-up comments say Docker is useful for node deployment, and that blue/green deployments depend on protocol, state, and routing choices such as distributed Erlang, Consul, or HAProxy.