Conectando backends Elixir e Go com um wrapper Crystal

2025-06-19
Conectando backends Elixir e Go com um wrapper Crystal

A equipe Mozi precisava conectar um novo aplicativo Elixir Phoenix LiveView a um backend Go existente. Eles exploraram NIFs e Ports, mas acabaram optando pela abordagem de Nó C do Erlang, usando Crystal para escrever um wrapper C para melhorar a manutenção. Isso desacopla as bases de código em tempo de compilação e execução, usando `Node.list` no Elixir para detectar a conectividade do nó C e S6 para reinicializações dentro do contêiner. Embora haja uma penalidade de desempenho ao cruzar o limite C/Go, isso é aceitável para o caso de uso deles. O resultado é uma combinação elegante de três linguagens (Elixir, Crystal, Go) que aprimora a manutenção.

Desenvolvimento