What about having Super Apps?
Have you been working with modern applications, but at the end of the day, they still give you a hard time? Have expectations not been met? Do microservices feel not so different from traditional operations, or just more complex? If all this is true, I can tell you’re missing something key in this IT success recipe (as some people might think).

When you work in a distributed architecture (like microservices), you don’t just decentralize functions and responsibilities; you also decentralize capabilities. These capabilities don’t rely on servers anymore (they don’t even exist, at least not in the way we manage our deployments). So, who is taking care of the recovery, contention, and health of your services (turning off and on doesn’t count) if, in the past, you relied on the maturity of products like application servers or service-oriented application platforms? Today, in the context of microservices, that maturity is expected in every deployment unit. Something that, in the past, was delivered by a mature and specialized product is today considered fundamental and baseline for the delivery and architecture team. There is no framework, library, or prescribed technology that can solve this magically. It requires expertise, or even mastery, for every delivery team.

If there is no clear reference, how can I know what I have to search for and achieve? True, there might be no clear reference about the implementation, but there is a clear reference regarding the capabilities needed. This is just a reflection of the key challenges of a distributed system. You probably already know them but didn’t realize they have to be embraced in every single application or service you consider an independent unit.

So, what are the needed capabilities? Very simply, to start the conversation, as an independent unit of work, you need to manage all interactions (integrations, communications, requests, responses, etc.) in the worst-case scenario, resulting in three main states to detect and react to:
- Working (available)
- Degraded (occasional/unfulfilled SLAs)
- Not Working / Paused (not available)
Complementary to every state, there are transitions, constant actions (reactive or proactive) that are able to identify the right conditions to change the state.
If your app can do this, it indeed is a Super App! Why? Because it can keep peace in your system, hold against attackers, recover from chaos, and at the end of the day, be a hero for your customers.

Wondering what’s the difference from a Cloud Native App? Probably not so different, but not necessarily just a 12-factor app. It has to consolidate the wisdom of many people in the organization and the consolidation of many adverse situations capitalized into robust software aligned with modern paradigms (Cloud and, soon, something new for sure).
This is a hint to challenge your solutions and components and jump into the innovators for tomorrow.

What’s the point of all this conversation? Work on your baseline capabilities, create a clear understanding of the expected behavior for your application, build a path to graduate workloads into this level of maturity. Of course, prioritize, not everything in your inventory is worth this effort, but for sure there are high-impact business components waiting for this opportunity.
How to evaluate success in this? You will not notice, that’s the idea. If your system can introduce changes without pitfalls and just regulate the pace of the business, you will be in a sweet spot that probably few people can tell.
Is this real? We didn’t mention anything that crazy, right? Worth giving a try? I wouldn’t be writing about it if it wasn’t the case. If you’re like me, we’re always investing in a better organizational stage.

In conclusion, the term ‘Super Apps’ represents more than a mere label; it embodies a paradigm shift towards applications that not only withstand but thrive amidst the complexities of modern systems. These are the trailblazers that redefine resilience, showcasing an unprecedented ability to surmount system adversities with grace. The vision for the future is clear: Super Apps will set the benchmark for essential capabilities, ensuring that each component not only integrates seamlessly but elevates the entire ecosystem. As this concept gains momentum, it’s not just about adopting a term — it’s about embracing a revolution in how we build, deploy, and perceive applications. The journey towards Super Apps isn’t merely technological; it’s a manifesto for resilience, agility, and unity in the digital age. May the rise of Super Apps herald a new era of innovation, where the boundaries of what’s possible are continually expanded, ensuring that each application not only fits within the system but enhances it, making the whole greater than the sum of its parts. Let’s champion the Super Apps movement, inspiring a future where every application is not just a tool, but a hero in its own right.