I have not started to code umbrella yet. But I have some user functionality/logic, front end logic with user authentication, and admin logic planned and I was thinking of separating it into three separate umbrella apps (one for each).
It seems like umbrella app runs on separate ports by default.
So maybe I should just keep the front end and login user deal within the same umbrella app or just deal with some port forwarding base on route but that’s seem messy. I think for sure I’d like to separate the admin logic into its separate umbrella app. Does this make any sense? Or is there anything I’m missing.
It seems umbrella apps might provide the benefits of monolith and microservices for medium sized projects with smaller teams, with fewer downsides than either.
But it’s tough to find definitive best practices answer tutorials.
My advise would be to just start off with a single app structure. Elixir makes it very easy to refactor your app to an umbrella when, and most importantly, if that is ever needed.
You can separate your code in a single app structure as well (purely as an example):