Overview
Mobile applications that offer a wide range of services through a single interface. Users can access various functionalities such as chatting, shopping, ordering rides, applying for loans, etc., all within one app. These such as application could be called super apps.
Super app and Mini app
A Super app normally contains miniapps, these are independently created applications or services that are integrated into the super app platform. They provide users with specific domain services, such as gaming, food delivery, travel bookings, etc. The super app offers a set of core features alongside access to these mini apps. These core features typically form the backbone of the application and may include messaging, payments, social networking, etc. Users can choose and activate these mini apps within the super app to customize their experience and access additional functionalities.
The mini apps operate within the ecosystem of the super app, rather than directly on the device’s operating system. This integration allows for seamless interaction between different services and a unified user experience.
In summary, a super app encompasses a variety of services within a single interface and extends its functionality through independently created mini apps, offering users a personalized and consistent experience across different domains.
Common architecture approaches
Monolithic architecture
Monolithic architecture is a way of organizing a super app as a combination of functionalities.
Pros
Creating, deploying, and testing is simplified because all source code is generated and delivered as a single unit. This approach also leads to better performance and stability as functions interact directly with each other. Additionally, it’s cost-effective as it requires only a single infrastructure for creating, maintaining, and deploying the application.
Cons
Each time a single piece of code changes, it requires redeployment. This results in slower build, compile, and deployment processes, especially for larger codebases. Additionally, there’s a lower reliability as an error in any function can impact the availability of the entire application. And the source code becomes challenging to understand, maintain, and scale.
Modular monolith architecture
Modular monolithic architecture is a way of organizing a super app into a set of modules.
Pros
With all modules seamlessly integrated into a single application, the process becomes simpler for creation, deployment, testing, management, and delivery as a unified unit. This integration enhances performance and stability as modules are designed to operate seamlessly in tandem. Additionally, it proves cost-effective by utilizing a single infrastructure for creation, maintenance, and deployment, while also improving comprehensibility and ease of maintenance.
Cons
Requiring deployment each time a single piece of code changes can lead to slower build, compile, and deployment processes, especially for larger codebases. This approach also increases the risk of lower reliability since errors in one module can impact the availability of the entire application. Additionally, managing numerous mini applications can becomes challenging.
Microapps architecture
Microapp architecture is a way of organizing super app into multiple miniapps
Pros
Functionalities and development teams can scale easier. External mini apps which developed by external team can integrated to super app. Each mini app can be handled by small team and deploy frequently, highly maintainable, testable and independently deployable. Mini app’s error does not affect the whole super app.
Cons
Challenges in development coordination, deployment, configuration, and reliable communication. Technical and operational complexity to support develop, test, deploy mini apps independently. Can experience performance issue due to network traffic when loading mini apps from the Internet.
Conclusion
Each approach has their own pros and cons. Selecting an approach may also require us to think about the culture of our business and expertise of technical team in developing, testing, deploying and maintaining the super app ecosystem of mini apps from internal and external parties.


