Hey!
I have two phoenix applications and would like to transfer data between them. What is the most efficient way to do this?
The first approach I thought about was to make http requests to each app via the already existing rest apis. I usually try not to make rest api calls to communicate within my micro services, as I feel they add an extra overhead in this case. But I am open to use it if there isn’t a better way.
I my search I came across this post
Efficient way to establishing communication between Phoenix applictions
One of the comments mentioned that Distributed Erlang
could be used to communicate between two nodes. This was pretty exciting as I thought I could call a function in App1 from App2, kinda like rpc which was exactly what I was looking for.
So I connected both the apps in the same cluster and ran them in iex. I tried calling a function in App Foo from the iex in App Bar but I got Foo.Context
is not available.
defmodule Foo.Context do
def func(), do: "Hello"
end
Is it possible to just call a function from another phoenix app like
defmodule Bar.Context do
def func(), do: Foo.Context.func()
end
I was only able to find examples where functions from a different node were called from iex but nothing from the code. Is this even possible?
I am pretty new to elixir and phoenix, so please correct me if I got something wrong.