page-header-img

Amazon Web Services

Amazon Web Services

AWS Official Site — Build, Deploy, and Manage Websites, Apps or Processes On AWS Secure, Reliable Network. Sign Up for a Free Account & Experience AWS Secure, Reliable, Scalable Services. In-Memory Caching. Easily Manage Clusters. Performance At Scale.

Three Types of Offers

More than 100 AWS products are available on AWS Free Tier today. Three different types of free offers are available
depending on the product used. Click an icon below to explore our offers.

Learn more about AWS Free Tier Products

Browse through our collection of videos to learn more about the AWS Free Tier, and how to setup and monitor your account.

Sign up for a Free AWS account

Creating an AWS account is free and gives you immediate access to the AWS Free Tier

Start building in the console

Build your production solution quickly and easily once you’re ready

Getting Started with AWS

Learn the fundamentals and start building on Amazon Web Services

Start your journey with AWS

Amazon Web Services (AWS) is the world’s most comprehensive and broadly adopted cloud that includes infrastructure as a service (IaaS) and platform as a service (PaaS) offerings. AWS services offer scalable solutions for compute, storage, databases, analytics, and more. Learn how to launch and configure different AWS services across a broad range of categories with our onboarding experience.Amazon Web Services

Learn best practices to set up your account and environment

We walk you through setting up your AWS account and development environment, which enables you to interact with your AWS account and resources.

Get to know the AWS Management Console

Learn how to use the AWS Management Console, a web application that provides access to the information you need to manage your AWS resources.

Learn to control your AWS costs

We show you how to control your costs while using the AWS Free Tier and how to use AWS Budgets to set up a cost budget to monitor your usage costs.

Continue your journey with AWS

Take the next steps by learning more about AWS, joining the AWS community, and getting certified.

AWS Developer Center

Explore topics, Learn tutorials, Download tools, and Join us at an AWS Developer event

Explore What Is Possible

Check out several ways to extend the capabilities of your application.

Learn About AWS Databases

What are databases?

Every application needs a place to store data from users, devices, and the application itself. Databases are important backend systems that are used to store, manage, update, and analyze data for all types of applications, from small back-office systems to mobile and consumer web applications with global scale.

Learn AI

Build in-demand AI skills with courses, tutorials, and resources

Generative AI training, curated by AWS experts

Unlock a comprehensive range of digital generative AI training resources including interactive labs, video tutorials, and hands-on lab experiences—all designed to equip learners with the skills and knowledge necessary to effectively leverage generative AI services from AWS.

Learn by doing

Learn the fundamental concepts for leveraging AI by getting hands-on with these fun and interactive tools from AWS

Architecture Best Practices for Containers

Understanding and implementing micro-frontends on AWS

As organizations strive for agility and scalability, the conventional monolithic architecture often becomes a bottleneck, hindering rapid development and deployment. Micro-frontends mitigate this by breaking down complex user interfaces into smaller, independent components that can be developed, tested, and deployed autonomously. This approach enhances the efficiency of development teams and facilitates collaboration between backend and frontend, fostering an end-to-end alignment of distributed systems.

This prescriptive guidance is tailored to help IT leaders, product owners, and architects across diverse professional domains to understand micro-frontend architecture and build micro-frontend applications on Amazon Web Services (AWS).

Overview

Micro-frontends are an architecture built on the decomposition of application frontends into independently developed and deployed artifacts. When you split large frontends into autonomous software artifacts, you can encapsulate business logic and reduce dependencies. This supports faster and more frequent delivery of product increments.

Micro-frontends are similar to microservices. In fact, the term micro-frontend is derived from the term microservice, and it aims to convey the notion of a microservice as a frontend. While a microservices architecture typically combines a distributed system in the backend with a monolithic frontend, micro-frontends are self-contained distributed frontend services. These services can be set up in two ways:

  • Frontend-only, integrating with a shared API layer behind which runs a microservices architecture
  • Full-stack, meaning that each micro-frontend has its own backend implementation.Amazon Web Services

The following diagram shows a traditional microservices architecture, with a frontend monolith that uses an API gateway to connect to backend microservices.

 

Client-side frontend monolith connecting to server-side microservices.

The following diagram shows a micro-frontend architecture with different implementations of microservices.

 

Client-side integration layer front-end modules and server-side microservices.

As shown in the previous diagram, you can use micro-frontends with client-side rendering or server-side rendering architectures:

  • Client-side rendered micro-frontends can directly consume APIs exposed by a centralized API Gateway.
  • The team can create a backend-for-frontend (BFF) inside the bounded context to reduce the chattiness of the frontend toward the APIs.
  • On the server side, micro-frontends can be expressed with a server-side approach augmented on the client side by using a technique called hydration. When a page is rendered by the browser, the associated JavaScript is hydrated to allow interactions with UI elements, such as clicking a button.Amazon Web Services
  • Micro-frontends can render on the backend and use hyperlinks to route toward a new part of a website.

Micro-frontends are a great fit for organizations that want to do the following:

  • Scale with multiple teams working on the same project.
  • Embrace decentralization of decision making, empowering developers to innovate inside the identified systems boundaries.

This approach significantly reduces the cognitive load on teams, because they become responsible for specific parts of the system. It boosts business agility because modifications can be made to one part of the system without disrupting the rest.Amazon Web Services

Micro-frontends are a distinct architectural approach. Although there are different ways to build micro-frontends, they all have common traits:

  • A micro-frontend architecture is composed of multiple independent elements. The structure is similar to the modularization that happens with microservices on the backend.
  • A micro-frontend is completely responsible for the frontend implementation within its bounded context, which comprises the following:
    • User interface
    • Data
    • State or session
    • Business logic
    • Flow

A bounded context is an internally consistent system with carefully designed boundaries that mediate what can enter and exit. A micro-frontend should share as little business logic and data with other micro-frontends as possible. Wherever sharing needs to happen, it takes place through clearly defined interfaces such as custom events or reactive streams. However, when it comes to some cross-cutting concerns such as a design system or logging libraries, intentional sharing is welcome.Amazon Web Services

A recommended pattern is to build micro-frontends by using cross-functional teams. This means that each micro-frontend is developed by the same team working from the backend to the frontend. Team ownership is crucial, from coding to the operationalization of the system in production.

This guidance does not intend to recommend one particular approach. Instead, it discusses different patterns, best practices, trade-offs, and architectural and organizational considerations.Amazon Web Services

Cloud design patterns, architectures, and implementations

This guide provides guidance for implementing commonly used modernization design patterns by using AWS services. An increasing number of modern applications are designed by using microservices architectures to achieve scalability, improve release velocity, reduce the scope of impact for changes, and reduce regression. This leads to improved developer productivity and increased agility, better innovation, and an increased focus on business needs. Microservices architectures also support the use of the best technology for the service and the database, and promote polyglot code and polyglot persistence.

Traditionally, monolithic applications run in a single process, use one data store, and run on servers that scale vertically. In comparison, modern microservice applications are fine-grained, have independent fault domains, run as services across the network, and can use more than one data store depending on the use case. The services scale horizontally, and a single transaction might span multiple databases. Development teams must focus on network communication, polyglot persistence, horizontal scaling, eventual consistency, and transaction handling across the data stores when developing applications by using microservices architectures. Therefore, modernization patterns are critical for solving commonly occurring problems in modern application development, and they help accelerate software delivery.

This guide provides a technical reference for cloud architects, technical leads, application and business owners, and developers who want to choose the right cloud architecture for design patterns based on well-architected best practices. Each pattern discussed in this guide addresses one or more known scenarios in microservices architectures. The guide discusses the issues and considerations associated with each pattern, provides a high-level architectural implementation, and describes the AWS implementation for the pattern. Open source GitHub samples and workshop links are provided where available.

The guide covers the following patterns:

  • Anti-corruption layer
  • API routing patterns:
    • Hostname routing
    • Path routing
    • HTTP header routing
  • Circuit breaker
  • Event sourcing
  • Hexagonal architecture
  • Publish-subscribe
  • Retry with backoff
  • Saga patterns:
    • Saga choreography
    • Saga orchestration
  • Scatter-gather
  • Strangler fig
  • Transactional outbox

Targeted business outcomes

By using the patterns discussed in this guide to modernize your applications, you can:

  • Design and implement reliable, secure, operationally efficient architectures that are optimized for cost and performance.
  • Reduce the cycle time for use cases that require these patterns, so you can focus on organization-specific challenges instead.
  • Accelerate development by standardizing pattern implementations by using AWS services.
  • Help your developers build modern applications without inheriting technical debt.

Leave a Reply

Your email address will not be published. Required fields are marked *

error: Content is protected !!