mksaga

mksaga

Independent applications as local dependencies?

Hello folks,

Hope you are well! Have been playing around with Elixir for a few months, loving the language :slight_smile: I’m looking for advice on how to manage dependencies between multiple Elixir applications.

My intention is to build a backend system for a bank made up of many (100s, maybe 1000’s) separate independent applications that call into each other - I like the Elixir approach of building several smaller applications, but I am having some trouble setting up config & dependencies.

I don’t want to go the umbrella application route, since it sounds to me like all config would live in one place - I anticipate each application having its own configuration, and I’d like to be able to release individual applications without releasing a new version of the entire system (open to suggestions on this though?).

Pursuing this so far, I have a single Github repo holding multiple Elixir applications, each generated separately. My intention is that application A can call functions in application B - initially, to make that happen, I added application B as a local mix dependency in A.deps().

What I’ve found is that I have to add calls to import all config needed by application B inside application A, which feels wrong? (ex: A is a CLI tool which calls into B, which has some Ecto configuration and queries to return values; if I launch A, in order for A to call B’s public API functions, I have to import B’s config in A’s config files)

What am I missing here? The independent application approach makes a lot of sense to me and feels intuitive, but I’m not sure how to set it up so that these applications can fluidly call into each other while each application contains its own concerns like config, etc. I’m looking to set up something like a microservices design, where “services” are independent applications all running inside the BEAM.

Thank you in advance! :pray:

First Post!

tomkonidas

tomkonidas

Poncho Projects might be interesting to check out. They are basically linking all the apps via Path

Where Next?

Popular in Questions Top

_russellb
I want to try my hand at web scraping. What tools/libraries do I need to use. I’m hoping to turn this into something professional so don’...
New
Tee
can someone please explain to me how Enum.reduce works with maps
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New

Other popular topics Top

New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 39297 209
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 126479 1222
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement