AWS In Practice
Courses
  • Welcome to AWS In Practice by IT Assist Labs!
  • Courses
    • AWS Powered E-commerce Application: A Guided Tour
      • Lesson Learning Paths
        • Lesson Learning Paths - Certification Prep
        • Lesson Learning Paths - Interview Prep
      • Lesson Summaries
        • Introduction
          • E-commerce Application Architecture
        • Multi-Account Strategy
          • Multi-Account Strategy Overview
          • Organization Units
          • Core Accounts
        • Core Microservices
          • Services Overview
          • AWS Well-Architected design framework application
          • Site Reliability Engineering Application
          • DevOps Application
          • Monitoring, Logging and Observability Application
        • AWS Service By Layer
          • AWS Service By Layer Overview
          • Presentation Layer
          • Business Logic Layer
          • Data Layer
        • E-commerce Application Use Cases
          • E-commerce Application Use Cases
          • Roles
      • Lesson Content Navigation Demonstration
    • Explore a Live AWS Environment Powering an E-commerce Application
  • Resources
    • AWS Certification Guide
      • Concepts
        • Security, Identity & Compliance
          • AWS IAM-Related Concepts in Certification Exams
        • Design High-Performing Architectures
          • Designing a high-performing architecture with EC2 and Auto Scaling Groups (ASGs)
    • Insights
      • Zero Trust Architecture (ZTA)
      • Implementing a Zero Trust Architecture(ZTA) with AWS
      • The Modern Application Development Lifecycle - Blue/Green Deployments
      • Microservices Communication Patterns
    • Interview Preparation
      • AWS Solutions Archictect
  • AWS Exploration
    • Use Cases
      • Multi-Region Resiliency with Active-Active Setup
        • Exploration Summary
    • Foundational Solutions Architect Use Cases
    • Security Engineer / Cloud Security Architect Use Cases
    • DevOps / Site Reliability Engineer (SRE) Use Cases
    • Cloud Engineer / Cloud Developer
    • Data Engineer Use Cases
    • Machine Learning Engineer / AI Practitioner Use Cases
    • Network Engineer (Cloud) Use Cases
    • Cost Optimization / FinOps Practitioner Use Cases
    • IT Operations / Systems Administrator Use Cases
  • Study Group
    • AWS Certified Solutions Architect - Associate
      • Study Guide Introduction
      • Domain 1: Design Secure Architectures
        • Task Statement 1.1: Design secure access to AWS resources
          • SecureCart's Journey
          • AWS Identity & Access Management (IAM) Fundamentals
          • AWS Security Token Service (STS)
          • AWS Organization
          • IAM Identity Center
          • AWS Policies
          • Federated Access
          • Directory Service
          • Managing Access Across Multiple Accounts
          • Authorization Models in IAM
          • AWS Control Tower
          • AWS Service Control Policies (SCPs)
          • Use Cases
            • Using IAM Policies and Tags for Access Control in AWS
        • Task Statement 1.2: Design Secure Workloads and Applications
          • SecureCart Journey
          • Application Configuration & Credential Security
          • Copy of Application Configuration & Credential Security
          • Network Segmentation Strategies & Traffic Control
          • Securing Network Traffic & AWS Service Endpoints
          • Protecting Applications from External Threats
          • Securing External Network Connections
          • AWS Network Firewall
          • AWS Firewall Manager
          • IAM Authentication Works with Databases
          • AWS WAF (Web Application Firewall)
          • Use Cases
            • AWS Endpoint Policy for Trusted S3 Buckets
            • Increasing Fault Tolerance for AWS Direct Connect in SecureCart’s Multi-VPC Network
            • Securing Multi-Domain SSL with ALB in SecureCart Using SNI-Based SSL
            • Configuring a Custom Domain Name for API Gateway with AWS Certificate Manager and Route 53
            • Application Load Balancer (ALB) – Redirecting HTTP to HTTPS
            • Security Considerations in ALB Logging & Monitoring
          • Amazon CloudFront and Different Origin Use Cases
          • Security Group
          • CloudFront
          • NACL
          • Amazon Cognito
          • VPC Endpoint
        • Task Statement 1.3: Determine appropriate data security controls
          • SecureCart Journey
          • Data Access & Governance
          • Data Encryption & Key Management
          • Data Retention, Classification & Compliance
          • Data Backup, Replication & Recovery
          • Managing Data Lifecycle & Protection Policies
          • KMS
          • S3 Security Measures
          • KMS Use Cases
          • Use Cases
            • Safely Storing Sensitive Data on EBS and S3
            • Managing Compliance & Security with AWS Config
            • Preventing Sensitive Data Exposure in Amazon S3
            • Encrypting EBS Volumes for HIPAA Compliance
            • EBS Encryption Behavior
            • Using EBS Volume While Snapshot is in Progress
          • Compliance
          • Implementing Access Policies for Encryption Keys
          • Rotating Encryption Keys and Renewing Certificates
          • Implementing Policies for Data Access, Lifecycle, and Protection
          • Rotating encryption keys and renewing certificates
          • Instance Store
          • AWS License Manager
          • Glacier
          • AWS CloudHSM Key Management & Zeroization Protection
          • EBS
        • AWS Security Services
        • Use Cases
          • IAM Policy & Directory Setup for S3 Access via Single Sign-On (SSO)
          • Federating AWS Access with Active Directory (AD FS) for Hybrid Cloud Access
      • Domain 2
        • Task Statement 2.1: Design Scalable and Loosely Coupled Architectures
          • SecureCart Journey
          • API Creation & Management
          • Microservices & Event-Driven Architectures
          • Load Balancing & Scaling Strategies
          • Caching Strategies & Edge Acceleration
          • Serverless & Containerization
          • Workflow Orchestration & Multi-Tier Architectures
        • Task Statement 2.2: Design highly available and/or fault-tolerant architectures
          • SecureCart Journey
          • AWS Global Infrastructure & Distributed Design
          • Load Balancing & Failover Strategies
          • Disaster Recovery (DR) Strategies & Business Continuity
          • Automation & Immutable Infrastructure
          • Monitoring & Workload Visibility
          • Use Cases
            • Amazon RDS Failover Events & Automatic Failover Mechanism
      • Domain 3
        • Task Statement 3.1: Determine high-performing and/or scalable storage solutions
          • SecureCart Journey
          • Understanding AWS Storage Types & Use Cases
          • Storage Performance & Configuration Best Practices
          • Scalable & High-Performance Storage Architectures
          • Hybrid & Multi-Cloud Storage Solutions
          • Storage Optimization & Cost Efficiency
          • Hands-on Labs & Final Challenge
        • Task Statement 3.2: Design High-Performing and Elastic Compute Solutions
          • SecureCart
          • AWS Compute Services & Use Cases
          • Elastic & Auto-Scaling Compute Architectures
          • Decoupling Workloads for Performance
          • Serverless & Containerized Compute Solutions
          • Compute Optimization & Cost Efficiency
        • Task Statement 3.3: Determine High-Performing Database Solutions
          • SecureCart Journey
          • AWS Database Types & Use Cases
          • Database Performance Optimization
          • Caching Strategies for High-Performance Applications
          • Database Scaling & Replication
          • High Availability & Disaster Recovery for Databases
        • Task Statement 3.4: Determine High-Performing and/or Scalable Network Architectures
          • SecureCart Journey
          • AWS Networking Fundamentals & Edge Services
          • Network Architecture & Routing Strategies
          • Load Balancing for Scalability & High Availability
          • Hybrid & Private Network Connectivity
          • Optimizing Network Performance
          • Site-to-Site VPN Integration for SAP HANA in AWS
        • Task Statement 3.5: Determine High-Performing Data Ingestion and Transformation Solutions
          • SecureCart Journey
          • Data Ingestion Strategies & Patterns
          • Data Transformation & ETL Pipelines
          • Secure & Scalable Data Transfer
          • Building & Managing Data Lakes
          • Data Visualization & Analytics
      • Domain 4
        • Task Statement 4.1: Design Cost-Optimized Storage Solutions
          • SecureCart Journey
          • AWS Storage Services & Cost Optimization
          • Storage Tiering & Auto Scaling
          • Data Lifecycle Management & Archival Strategies
          • Hybrid Storage & Data Migration Cost Optimization
          • Cost-Optimized Backup & Disaster Recovery
        • Task Statement 4.2: Design Cost-Optimized Compute Solutions
          • SecureCart Journey
          • AWS Compute Options & Cost Management Tools
          • Compute Purchasing Models & Optimization
          • Scaling Strategies for Cost Efficiency
          • Serverless & Container-Based Cost Optimization
          • Hybrid & Edge Compute Cost Strategies
          • AWS License Manager
        • Task Statement 4.3: Design cost-optimized database solutions
          • SecureCart Journey
          • AWS Database Services & Cost Optimization Tools
          • Database Sizing, Scaling & Capacity Planning
          • Caching Strategies for Cost Efficiency
          • Backup, Retention & Disaster Recovery
          • Cost-Optimized Database Migration Strategies
        • Task Statement 4.4: Design Cost-Optimized Network Architectures
          • SecureCart Journey
          • AWS Network Cost Management & Monitoring
          • Load Balancing & NAT Gateway Cost Optimization
          • Network Connectivity & Peering Strategies
          • Optimizing Data Transfer & Network Routing Costs
          • Content Delivery Network & Edge Caching
      • Week Nine
        • Final Review Session
        • Final Practice Test
Powered by GitBook

@ 2024 IT Assist LLC

On this page
  • Synchronous Communication Using API Gateway
  • Load Balancer for Service-to-Service Communication
  • Asynchronous Communication with Event Streaming
  • Service Mesh for Service-to-Service Security and Observability
  • Error Handling and Retry Logic
  • Example Communication Flows
  • Subscribe To Our Mailing List
  1. Resources
  2. Insights

Microservices Communication Patterns

These communication patterns ensure the microservices-based system's scalability, resilience, security, and observability. It uses API Gateway for external requests, ALB for internal communication, and Kafka (MSK) for asynchronous event-driven workflows, with an optional service mesh for enhanced security and monitoring.


Pattern

Technology

Use Case

Synchronous (API Gateway)

API Gateway + ALB

User-facing requests (e.g., product search, checkout)

Internal Communication

ALB + ECS Fargate

Service-to-service calls (e.g., Order to Payment)

Event Streaming

MSK (Kafka)

Asynchronous workflows (e.g., order events, stock updates)

Service Mesh

AWS App Mesh

mTLS, traffic control, observability


Synchronous Communication Using API Gateway

Amazon API Gateway

  • Responsibilities

    • Acts as the centralized entry point for external and internal clients.

    • Routes client requests to appropriate microservices based on path-based routing or header-based routing.

    • Manages authentication using JWT tokens (e.g., Amazon Cognito).

    • Handles rate limiting, request throttling, and caching to ensure reliability and prevent abuse.

  • How API Gateway Facilitates Communication

    • Use Case: The Product Service exposes APIs through API Gateway to provide product details or search results.

    • Example

      • Client Request: A user searches for products, triggering a GET /products?category=electronics request.

      • API Gateway Routing: API Gateway forwards the request to the Product Service deployed on ECS Fargate via ALB.

      • Response: The Product Service responds with the search results, which API Gateway sends back to the user.

  • Benefits

    • Centralized management of security, authentication, and authorization policies.

    • Decouples clients from internal services, protecting microservices from direct exposure to the internet.

    • Supports cross-origin requests with CORS configuration.


Load Balancer for Service-to-Service Communication

Application Load Balancer (ALB)

  • Responsibilities

    • Distributes traffic to microservices running on ECS Fargate or EC2.

    • Ensures high availability and automatic failover.

    • Supports path-based routing for different microservices.

    • Provides health checks to ensure traffic is only routed to healthy instances.

  • How Load Balancer Facilitates Communication

    • Use Case: The Order Service needs to interact with the Payment Service during checkout.

    • Example:

      • Request: The Order Service sends a request to https://service.cloudexploration.com/payments to initiate payment.

      • ALB Routing: The ALB forwards the request to the Payment Service instance running on ECS Fargate.

      • Response: The Payment Service returns a success or failure response to the Order Service.

  • Benefits

    • Enables internal communication between microservices that are not directly exposed to the internet.

    • Path-based and host-based routing makes service discovery simpler.

    • Provides automatic scaling and traffic management for microservices.


Asynchronous Communication with Event Streaming

Amazon MSK (Managed Streaming for Apache Kafka)

  • Responsibilities

    • Acts as the central event bus for inter-service communication.

    • Allows microservices to publish and subscribe to events in real-time.

    • Enables loose coupling between services, supporting independent development and deployment.

    • Supports asynchronous workflows with message delivery at least once.

  • Sample

    • Event Producers

      • Order Service: Publishes an OrderPlaced event to the order-events Kafka topic when a user places an order.

      • Payment Service: Publishes PaymentProcessed events to the payment-events Kafka topic after a successful payment.

      • Inventory Service: Publishes LowStockAlert events to the inventory-events Kafka topic if stock levels are below the threshold.

    • Event Consumers

      • Inventory Service: Subscribes to order-events the topic and updates stock levels based on the order details.

      • Notification Service: Subscribes to multiple topics (order-events, payment-events) and sends notifications to users about order confirmations and payment statuses.

  • Example Workflow

    1. The Order Service publishes an OrderPlaced event.

    2. The Inventory Service consumes the event and updates stock levels.

    3. The Notification Service consumes the same event and sends an order confirmation email to the user.

  • Benefits of MSK

    • Decouples microservices: Services do not need to know about each other’s implementations.

    • Scalable: Kafka topics can handle high-throughput events.

    • Resilient: Supports replayability and persistence of events to handle downtime or errors.


Service Mesh for Service-to-Service Security and Observability

  • Service Mesh (e.g., AWS App Mesh) provides additional security and control for service-to-service communication:

    • mTLS (Mutual TLS) to ensure encrypted communication and authentication between microservices.

    • Traffic Routing and Control: Fine-grained control over routing traffic between services.

    • Observability: Collects detailed telemetry data, such as request latency and error rates across microservices.


Error Handling and Retry Logic

  • API Gateway: Implements circuit breakers to prevent cascading failures and retry logic with exponential backoff for transient errors.

  • MSK Consumers: If a consumer fails to process a message, the message remains on the topic until successfully processed (at least once delivery).


Example Communication Flows

  1. Synchronous Flow (Using API Gateway and ALB)

    1. User Request: A user makes a checkout request through API Gateway.

    2. Order Service: API Gateway routes the request to the Order Service via ALB.

    3. Payment Service Call: The Order Service calls the Payment Service through ALB to process the payment.

    4. Response: Payment Service responds to the Order Service, completes the checkout process, and returns a successful response to the user.

  2. Asynchronous Flow (Using Kafka with MSK):

    1. Order Service Event: The Order Service publishes an OrderPlaced event to the Kafka order-events topic.

    2. Inventory Service Consumer: The Inventory Service consumes the event to update stock levels.

    3. Notification Service Consumer: The Notification Service consumes the same event to send a confirmation notification to the user.

    4. Payment Service Event: After processing the payment, the Payment Service publishes a PaymentProcessed event.

    5. Notification Service: The Notification Service listens to the payment event and notifies the user of payment success.

Subscribe To Our Mailing List

Stay ahead in the cloud-first world with the latest insights, strategies, and best practices for mastering AWS services and modern application development.

PreviousThe Modern Application Development Lifecycle - Blue/Green DeploymentsNextInterview Preparation

Last updated 4 months ago

Page cover image