November 12th, 2024

Introducing the Modern Web App (MWA) Pattern for Java

We are thrilled to announce the Modern Web App (MWA) pattern for Java, a comprehensive guide to modernizing Java applications with independently scalable, cloud-native architecture on Azure. Designed with the Spring Framework and Azure in mind, MWA can also be adapted to other frameworks and cloud providers, providing Java developers with flexible and actionable strategies to modernize their applications.

The MWA pattern marks the next stage in transforming monolithic web applications toward cloud-native architecture, with a focus on the Refactor modernization strategy. Building on the Reliable Web App (RWA) pattern, which helped organizations migrate monolithic apps to the cloud with minimal changes under a Replatform approach, MWA guides teams further by encouraging decoupling and decomposition of key functions into microservices. This enables high-demand areas to be optimized for agility and scalability, providing dedicated resources for critical components and enhancing reliability and performance. Decoupling also allows independent versioning and scaling, delivering cost efficiency and flexibility to evolve individual app components without affecting the entire system.

Modern Web App (MWA)
Figure 1 – Modern Web App (MWA)

Key Features of MWA for Java

  • Modernization Through Refactoring: Building on the RWA pattern, the MWA focuses on decoupling critical components into microservices to enhance scalability, agility, and resource optimization.
  • Incremental Refactoring with the Strangler Fig Pattern: The strangler fig pattern enables a gradual migration from monolithic structures to modular services. For Java, this is implemented through Spring Boot and Azure Service Bus, allowing seamless integration and progressive replacement of legacy services with modern, non-blocking solutions.
  • Cloud-Native Architecture: Leverages Azure services, including Azure App Service, Azure Container Apps, and Azure Monitor, to support resilient, high-performance applications with independent scaling for key components.

What’s Covered in the MWA Reference Implementation

Architecture
Figure 2 – Architecture

 

Technologies
Figure 3 – Technologies

The MWA reference implementation is designed to showcase how MWA patterns can enhance scalability, security, and agility in response to evolving business needs. In this context, we use a fictional company, Contoso Fiber, evolving business needs to illustrate the MWA pattern, which takes scalability further through decoupling and refactoring of monolithic line-of-business web app. This architecture enables independent scaling via microservices for high demand, supporting Contoso Fiber’s growth while enhancing security, agility, and reliability meeting the 99.9% business SLO uptime requirement.

Get Started

  • Deploy the Reference App: Experience all MWA principles in action by deploying the full production-grade Java application to Azure. Visit the MWA GitHub repository for more information.
  • Explore In-Depth Documentation: Learn more about MWA through comprehensive documentation on Microsoft Learn.
  • Try Out MWA Patterns: Discover and experiment with the MWA patterns to modernize and scale your Java applications.

 

Category
Java

Author

0 comments