A Micro-app is a super-specialized application designed to perform one task or use case with the only objective of doing it well. They follow the single responsibility principle, which states that "a class should have one and only one reason to change." Micro applications help developers create less complex applications while reducing costs by breaking down monolithic systems into groups of independent services acting as one system.[1]
without installation on the viewer's device. To qualify as a micro app, the entity must:
Micro apps differentiate from traditional web or mobile applications by how the end-user interacts with them. Consequently, they can be embedded in websites or viewed online to bypass app stores and are typically built to provide a focused experience to the user.[2]
Micro apps are typically used for commercial purposes[3] to reduce development costs for projects not requiring the large scope of a traditional web or mobile application. In addition, they are often used to showcase in-depth information or enrich marketing material with interactivity.[4] Lately, micro apps are being used to boost productivity by providing quick tools to people to reuse best practices.
Users have been interacting with micro apps for a while with suites like Office365 and Google Workspace, where each one of their end-user services could be considered as a micro-app. All these micro apps share a unique identity manager to provide a unified user experience.
Replacing monolith systems with micro apps provide several advantages like:
Technologies like Kubernetes, or OpenShift, allow companies to replace their monolith and legacy systems with modular software taking advantage of micro apps on reducing costs and improve reliability and security.
There is a widespread misunderstanding between these two concepts, which is the key difference. Microservices is an architectural style that is systems-centric, meaning it decouples the presentation and data layer using web services APIs. On the other side, micro apps behave more as a super-architecture style (that embraces microservices among other types), and it is user-centric, meaning they decouple the whole monolith system onto modules that are designed to interact with final users.
Both architectural styles rely on modularity to provide high performance, scalability, and resilience.
Developing Micro apps requires a different approach than traditional software, and user experience is crucial. The following considerations are essential for switching to micro-apps. [5]