Your opinion please: Application Architecture - Decoupled Approach

Good Day,
Can you please share some thoughts on what would be the best way to achieve the following:
My current train of thought is to have one “Container Application” that will manage the generic sections that apply through any of part of the application, such as user authentication and user profile sections.
This will also maintain the Menu section.
Each item on the menu is a completely separate ionic application and are all built and deployed separately.
When you click on the menu item however, that application is opened within the container application.
Like this:

The main reason why I was considering using this approach is to have a fully decoupled approach - in that one application has no effect on another but all share the same common items provided by the container application.

In theory this sounded great, but I am wondering if this design is not going to be more trouble than it is worth and if it would be better to create just one application with different components for each application.

All applications are integrated with lambda and dynamodb, so the decoupling on those areas still remain unchanged.

Your feedback and thoughts are much appreciated.

Thank you in advance!

Id look into using NX and making the ionic applications separate libs.

My opinion is you should trust your gut feeling. If it sounds too complicated and more trouble than it’s worth to you, then you’ve already answered your own question.

Thank you @Daveshirman, the main concern I have is when I want to roll this out to mobile, then the clients will have a separate app for each individual application, which is not great.

I do not mind going through the effort if this is the “RIGHT” way to structure it, I just do not want to end up 5 years from now and realize I built it wrong.

Depends how you look at it. In my mind, having separate applications reduces the perceived mental effort on the user side.

People are accustomed to an app doing something, not everything.

If you are worried about sharing data between apps then there are several ways, like storing a server flag, then checking after redirecting to the other app for that flag.

Or direct sharing with deep linking and data etc. But that’s not the main question being asked.

Additional thoughts:

How are the separate applications going to be rendered? An iFrame pointing to the url?

Is this going to be used on Android? If so how is the system back button going to work?

@Daveshirman thank you for your inputs. much appreciated.

When it comes to rendering or “back” buttons on Android, I have not yet thought of all these implications. I guess mostly because I do not know what they will be and also part of the reason of asking for advise here. It helps to surface these issues and provide possible solutions.
The current old outdated system is all as one system and the navigation is the separation from a user perspective. So as to the current users this would not bother them so much.

Thank you for your insights. much appreciated.

1 Like