I might be missing something here so feel free to fill me in if I am. Basically I am confused to the actual benefit of umbrella apps. I spent the last week converting Blex to an umbrella app with the following structure:
BlexWeb <- Blex(Holds posts, comments etc.) <- Auth & Cache & Utils & Processor(MD converter)
So in the above (poorly constructed diagram), Blexweb
has a dependency of blex
which has a dependency of Auth
, Cache
, Utils
and Processor
.
What I don’t really get is what is the benefit of having something like this structure as opposed to having it all under one app, namespaced in the lib directory:
e.g. Blex.Auth.Authenticator
-> lib/blex/auth/authenticator.ex
From my understanding, when you make a change in an umbrella app (say the Auth
app from above), I still reregenerate an entire release containing all the apps and deploy that, instead of the typical microservice approach and just release that app. So in this regard I don’t see the benefit either?
Anyone able to explain this one a bit better to me because I think I am missing something here!