Open In App

Designing Amazon Prime Video | System Design

Last Updated : 06 Feb, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Save
Share
Report
News Follow

Amazon Prime Video is a popular streaming provider that offers a wide library of movies, TV shows, and unique content to hundreds of thousands of users worldwide. Designing such a complex system involves addressing diverse challenges related to scalability, reliability, and overall performance. In this article, we're going to discover the High-level design and Low-Level design of Amazon Prime Video, which focuses on key components and considerations.

Amazon-system-design-(1)

1. Requirements for Amazon Prime Video System Design

1.1 Functional Requirements for Amazon Prime Video System Design

  • Users should be able to create accounts, log in, and log out.
  • Subscription management for users.
  • Allow users to play videos and pause, play, rewind, and fast-forward functionalities.
  • Ability to download content for offline viewing.
  • Personalized content recommendations based on user preferences and viewing history.

1.2 Non-Functional Requirements for Amazon Prime Video System Design

  • No/Minimal Buffering Platform: The platform should minimize buffering at some point of video playback to enhance user experience. Videos should start quickly and play constantly with minimal interruptions.
  • High Availability and Eventual Consistency: The platform must be available all time and provide consistent services even in the face of failure. Eventual consistency ensures that all replicas of data converge to the same state over time.
  • Low Latency Application: The application should respond right away to user interactions, and the video streaming should have minimum latency. This guarantees a real-time and engaging user experience.
  • Reliability: Uploaded Videos Should Not Be Lost, the device must have strong mechanisms to prevent data loss and make sure the integrity of the uploaded content.

2. Capacity Estimation for Amazon Prime Video System Design

You can estimate the system capacity by analyzing certain data like traffic, number of user coming on site. Here is the simplified calculation given:

Traffic is 100 million (100,000,000) vistors per month
Traffic per second = 100,000,000/30*24*60*60= 38.58
Assumption - Each user watches an average of 30 minutes of video content per day
- Each video has an average duration of 120 minutes
Videos played per second = Traffic/ (30*60/120)= 38.58/(30*60/120) = 2.57

3. Use case Diagram for Amazon Prime Video System Design

The use case diagram for amazon prime video is illustrated below:

usc-diag

  • User Registration/Login:
    • Users can create an account by providing necessary details such as email, password, and other required information.
    • Existing users can log in using their credentials.
    • Authentication services verify the user's identity.
  • Plan Selection and Activation:
    • Once logged in, users can browse through available subscription plans (e.g., monthly, yearly).
    • Users can select a plan based on their preferences, which may include factors like video quality and the number of simultaneous streams allowed.
    • After selecting a plan, the user initiates the subscription activation process.
  • Payment Processing:
    • Users are directed to a secure payment gateway to enter payment details.
    • The system interfaces with payment services to process the transaction securely.
    • Upon successful payment, the subscription plan is activated for the user.
  • Content Browsing:
    • Users can explore the content library, which includes movies, TV shows, and other media.
    • The system provides categories, genres, and personalized recommendations based on user preferences.
  • Search Content:
    • Users can use a search functionality to find specific content by title, genre, actor, etc.
    • The system indexes and retrieves relevant content based on user queries.
  • Content Details:
    • Clicking on a specific content item displays detailed information, including synopsis, cast, ratings, etc.
    • Users can see which subscription plan is required to access specific content.
  • Streaming Content:
    • After selecting content, users can initiate streaming.
    • The system ensures content availability and starts streaming based on the user's device capabilities and network conditions.
  • Logout:
    • Users have the option to log out of their account.
    • The system securely terminates the user's session, ensuring data privacy.

4. Low-Level Design (LLD) for Amazon Prime Video System Design

In the Low-Level Design (LLD) of Amazon Prime Video, different type of components interact with each other to deliver a seamless streaming experience. Here's is an detailed explanation of their interaction flow.

lld-amazon

4.1 Video Asset:

The video asset is the source content, including a movie or TV shows, stored in a perfect format and high resolutions. This asset serves as the raw material for the streaming process.

4.2 Encoder:

The video asset is passed through an encoder, a crucial icomponent accountable for compressing and encoding the video into specific size and formats. This step is crucial for adaptive streaming, allowing users to receive the best quality video depending on their network strength.

4.3 Packaging/Fragmenting:

Once encoded, the video stream is packaged or fragmented into smaller chunks. This process entails creating smaller video segments that can be effectively transmitted over the internet. Each section normally represents a small period of the video.

4.4 HTTP Web Server:

The HTTP Web Server plays a pivotal position in delivering in the video content to end-users. It stores and serves the video segments to customers upon their request. When a user initiates playback, their user sends HTTP requests to the server to fetch the video segments.

4.5 Client:

The client, representing the user device or application, is liable for initiating the streaming process. It interacts with the HTTP Web Server to request and receive video segments. The purchaser additionally manages the adaptive streaming logic, dynamically adjusting the satisfactory of the video quality depending on user network conditions to provide smooth user experience.

5. High-Level Design (HLD) for Amazon Prime Video System Design

HLD-Amazon-Prime-Video

5.1 User:

Users interact with the Amazon Prime Video platform through various gadgets, including of smartphones, tablets, smart TV, or internet browsers. The platform is designed to provide a seamless and consistent user experience across different gadgets.

5.2. CDN (Content Delivery Network):

The CDN plays a vital function in distributing video content efficiently to users across worldwide. It helps in reducing latency and speeds up content delivery by means of caching video segments in strategically located servers. This enables faster content delivery to users, regardless of their geographical location.

5.3. Load Balancer:

The Load Balancer distributes incominguser requests across multiple servers to make sure even distribution of the load. This enhances system scalability, fault tolerance, and premiere resource utilization. This ensures that no single server is overwhelmed, enhancing scalability, fault tolerance, and resource utilization.

5.5. Original Videos (Object Storage):

High-quality video assets are stored in distributed, scalable object storage. This storage architecture is designed to handle large volumes of data efficiently, ensuring the secure and accessible storage of original video files.

5.6. Upload Service:

When content creators add new videos to the platform, the Upload Service handles this service. It not only verifies the integrity of uploaded content but also stores it in the object storage system. Additionally, it updates metadata associated with the uploaded videos, such as title, description, and duration.

5.7. View Service:

The View Service is responsible for the overall user experience. It handles user requests for video playback, ensuring proper authorization. It interacts with various services to fetch and deliver the required video segments, contributing to a smooth viewing experience.

5.8. Video Splitting Service:

The Video Splitting Service breaks down the original video into smaller, manageable segments. These segments are then distributed for efficient streaming. This process is crucial for optimizing bandwidth usage and ensuring a continuous and uninterrupted streaming experience.

5.9. Update History Service:

The Update History Service keeps track of user viewing history. It considers personalized recommendations and allows users to resume playback from where they left off, enhancing the continuity of the viewing experience.

5.10. Inspection Service:

The Inspection Service monitors and guarantees the quality of the video content. It may additionally consist of check for resolution, bit rate, and other parameters to assure a wonderful streaming experience.

5.11. Cache:

The Inspection Service monitors and ensures the quality of video content. It performs checks on resolution, bit rate, and other parameters, guaranteeing a high-quality streaming experience for users.

5.12. Split Video File (Object Storage):

After video splitting, segmented video files are stored in object storage. These files are optimized for efficient retrieval during streaming, contributing to a responsive and seamless user experience.

5.13. Video Metadata Database:

The Video Metadata Database stores crucial information about each video, including title, description, duration, and other relevant details. This metadata is essential for cataloging and retrieving videos based on user queries.

5.14.Relational Metadata Database:

The Relational Metadata Database stores additional relational information, enhancing the platform's search and recommendation capabilities. It facilitates efficient queries, allowing users to discover content based on various criteria.

5.15. Get Recommendation Service:

The Get Recommendation Service analyzes user preferences, viewing records, and other data to provide personalized content recommendations. This service contributes to user engagement by suggesting content aligned with individual tastes.

5.16. Generate Recommendation Feed:

Based on user preferences and system algorithms, the Generate Recommendation Feed service compiles a tailored content feed. This feed enhances the overall user experience by presenting content recommendations that align with users' interests, promoting content discovery and engagement.

6. Database Design for Amazon Prime Video System Design

Database Design for Amazon Prime Video:

6.1. User Table

User Table store user data. It includes fields like:

  • user_id (PK): Unique identifier for each user.
  • username: User's username for authentication.
  • email: User's email address for communication.
  • password: Encrypted password for user authentication.
  • created_at: Timestamp indicating when the user account was created.

6.2. Video Table

Video table are used store all the information regarding video like its description, duration, its title etc. It includes fields like:

  • video_id (PK): Unique identifier for each video.
  • title: Title of the video.
  • description: Description or summary of the video content.
  • duration: Duration of the video.
  • upload_date: Timestamp indicating when the video was uploaded.

6.3. Watchlist Table

The Watchlist Table is responsible for managing users' watchlists. It includes the following fields:

  • watchlist_id (PK): Unique identifier for each watchlist entry.
  • user_id (FK): Foreign key referencing the User Table to identify the user.
  • video_id (FK): Foreign key referencing the Video Table to identify the video in the watchlist.
  • added_at: Timestamp indicating when the video was added to the watchlist.

6.4. Category Table

The Category Table is designed to categorize videos into different genres or types. It includes the following fields:

  • category_id (PK): Unique identifier for each category.
  • category_name: Name or label of the video category (e.g., Action, Drama, Comedy).

6.5. History Table

The History Table manages the playback history of users, recording details about when a user has watched a particular video. It includes the following fields:

  • history_id (PK): Unique identifier for each playback history entry.
  • user_id (FK): Foreign key referencing the User Table to identify the user.
  • video_id (FK): Foreign key referencing the Video Table to identify the video in the playback history.
  • watched_at: Timestamp indicating when the user watched the video.

6.6. Review Table

The Review Table captures user reviews and ratings for videos, providing valuable feedback. It includes the following fields:

  • review_id (PK): Unique identifier for each review.
  • user_id (FK): Foreign key referencing the User Table to identify the user who made the review.
  • video_id (FK): Foreign key referencing the Video Table to associate a review with a video.
  • rating: Numeric rating given by the user.
  • comment: Textual comment or review content.
  • created_at: Timestamp indicating when the review was posted.

7. Microservices used for Amazon Prime Video System Design

Amazon Prime Video possibly employs a microservices structure, breaking down the system into independent, loosely coupled service. Each microservice focuses in a particular business capability. Examples include:

7.1. User Service

  • Responsibilities: Manages user authentication, authorization, and user-related functionalities.
  • Role: Ensures stable access to the platform, retaining user profiles, and managing login and session control.

7.2. Content Service

  • Responsibilities: Handles the complete content lifecycle, which include video encoding, storage, and retrieval.
  • Role: Ensures efficient content delivery, supports adaptive streaming, and manages storage.

7.3. Recommendation Service

  • Responsibilities: Generates customized content material recommendations based on user behavior.
  • Role: Enhances user engagement by suggesting content tailored according to individual choice.

7.4. Payment Service

  • Responsibilities: Manages payment processing, subscription handling, and transaction control.
  • Role: Facilitates stable and efficient payment transactions within the Amazon Prime Video platform.

8. APIs used for Amazon Prime Video System Design

8.1. RESTful APIs

  • Purpose: RESTful APIs permit communication between microservices. They define a fixed of conventions for building web services, making it clean for exclusive service to understand and interact with each other.
  • Example: The User Interface communicates with the Recommendation Service through RESTful APIs to retrieve personalized content. The API offers a standardized way for the UI to request and receive recommendation data.

8.2. Authentication API

  • Purpose: Manages user authentication and session management. This API ensures steady access to the platform through verifying user credentials.
  • Example: The User Interface interacts with the Authentication API to handle user login, making sure that users are authenticated securely earlier than accessing content.

8.3. Payment API

  • Purpose: Facilitates communication between the User Interface and the Payment Service for payment transactions. This API guarantees the secure processing of bills and manages subscription details.
  • Example: The Payment API lets in the User Interface to communicate with the Payment Service, handle transactions seamlessly and securely.

9. API Code Implementation for Amazon Prime Video System Design

9.1. User Registration API (POST):

  • Endpoint: /api/user/register
  • Description: Allows users to securely create their accounts.
Request
{
  "username": "example_user",
  "email": "user@example.com",
  "password": "securepassword123"
}
Response
{
  "status": "success",
  "message": "User registration successful"
}

9.2. Video Recommendation API (GET):

  • Endpoint: /api/video/recommendation?user_id=12345
  • Description: Retrieves personalized video recommendations for a user.
Request
GET /api/video/recommendation?user_id=12345
Host: your-prime-video-api.com
Accept: application/json
Response
{
  "recommendations": [
    {
      "video_id": "abc123",
      "title": "Recommended Video 1",
      "thumbnail_url": "/thumbnails/recommended_video_1.jpg"
    },
    {
      "video_id": "def456",
      "title": "Recommended Video 2",
      "thumbnail_url": "/thumbnails/recommended_video_2.jpg"
    }
  ]
}

9.3. Video Update API (PUT):

  • Endpoint: /api/video/update
  • Description: Allows users to update information about a video.
Request
{
  "user_id": "12345",
  "video_id": "abc123",
  "title": "Updated Video Title",
  "description": "This is the updated description for the video."
}
Response
 {
  "status": "success",
  "message": "Video information updated successfully"
}

10. Scalability for Amazon Prime Video System Design

Amazon Prime Video serves a large and diverse user base. As the platform attracts more users globally, the system must be able to handle increased traffic and demand for video content. Scalability ensures that the infrastructure can grow seamlessly to accommodate a growing number of users. Scalability allows the system to dynamically scale resources to handle sudden increases in demand.

  • Horizontal Scaling: Utilizes multiple instances of microservices to handle increased loads. For example, additional instances of the Content Service may be deployed to control developing video content.
  • CDN for Scalability: Leverages Content Delivery Network for scalable and efficient content material delivery.
  • Load Balancing: Distributes incoming site visitors throughout multiple servers or instance to save you from overloading.
  • Database Sharding: Distributes information throughout a couple of databases for improved database performance.

11. Components details for Amazon Prime Video System Design

11.1. User Interface

  • Responsibilities:
    • User Authentication: Provides login and registration functionalities.
    • Playback Controls: Manages the playback of movies with features like play, pause, and seek.
    • Search and Recommendations: Enables user to search for content material and gives personalized recommendations.
  • Technologies:
    • Web Interface: HTML, CSS, JavaScript.
    • Mobile Applications: Native or cross-platform frameworks.

11.2. Content Delivery Network (CDN)

  • Responsibilities:
    • Efficient Content Delivery: Distributes video content material to user from geographically distributed edge location.
    • Caching: Caches frequently accessed content material to lessen latency.
    • Load Balancing: Ensures even distribution of user requests throughout servers.
  • Technologies:
    • CDN Providers: Amazon CloudFront, Akamai, Cloudflare.

11.3. Video Encoding and Storage

  • Responsibilities:
    • Video Encoding: Converts and stores videos in various resolutions and formats.
    • Storage: Manages the storage of encoded video files.
    • Adaptive Streaming: Supports adaptive streaming for optimal playback quality.
  • Technologies:
    • Storage: Amazon S3 or similar disbursed storage structures.
    • Video Encoding Services: AWS Elastic Transcoder, FFmpeg.

11.4. Recommendation Engine:

  • Responsibilities:
    • User Profiling: Analyzes user behavior, preferences, and viewing history.
    • Content Suggestions: Generates personalized content suggestions.
    • Machine Learning Algorithms: Utilizes algorithms for predictive evaluation.
  • Technologies:
    • Machine Learning Frameworks: TensorFlow, PyTorch.
    • Recommendation Algorithms: Collaborative filtering, content-based filtering.

12. Conclusion

Designing a streaming carrier like Amazon Prime Video entails orchestrating a complex interaction of technology to deliver a seamless and enjoyable user experience. The scalability, reliability, and performance of each aspect are vital to meet the demands of millions of users worldwide. This high-level overview provides a glimpse into the architecture and issues that go into building a current streaming platform.


Similar Reads

Designing Authentication System | System Design
Keeping your important digital information safe is like building a strong foundation, and the key to that is a good security system. This article will help you understand how to make a robust security system step by step. We'll start with figuring out what you want to protect and what you want to achieve. Then, we'll talk about the detailed design
10 min read
Designing Parking Lot (Garage) System | System Design
Parking garage plays an important role in today's world, as the number of vehicles is increasing every day, so it has become a major concern to manage them. The parking garage provides the solution to this problem of limited space. It offers to book a Parking garage using any method whether online or offline. In this article, we will explore all th
11 min read
How does the process of developing a system differ from designing a system?
System Development vs. System DesignSystem DevelopmentSystem DesignHow Does The Process Of Developing A System Differ From Designing A System?ConclusionSystem DevelopmentSystem development is a structured process of designing, creating, and implementing software or hardware solutions to address specific needs or problems within an organization. It
7 min read
Complete Reference to Databases in Designing Systems - Learn System Design
Previous Parts of this System Design Tutorial What is System DesignAnalysis of Monolithic and Distributed SystemsImportant Key Concepts and TerminologiesWhat is Scalability and How to achieve itWhat is a Database? When we store data, information, or interrelated data, in an organized manner in one place, it is known as Database. Databases are respo
14 min read
Designing Google Maps | System Design
A web mapping tool called Google Maps offers a range of geographic data, such as street maps, satellite photos, streets' aerial views, real-time traffic reports, and directions. There are several versions of it available, such as web, mobile, etc. In this article, we will see the system design of Google Maps Important Topics for the Google Maps Sys
11 min read
Designing Instagram | System Design
Designing Instagram is an important topic for system design interview questions. Instagram follows strong Architecture. In this article, we will discuss the architecture of posting photos and videos, following and unfollowing users, liking and disliking posts, searching photos and videos, and generating news feeds. Important Topics for Instagram Sy
12 min read
Designing Online Code Editor | System Design
Online code editors are now a crucial part of modern software development. They allow collaboration, real-time coding, and the ability to access development tools from anywhere in the world. In this article, we'll explore how to design a system to create a useful and scalable online code editor. Important Topics for the Online Code Editor System De
11 min read
Designing TikTok | System Design
TikTok, the globally acclaimed video-sharing platform, enchants audiences with its short, captivating content. Behind this phenomenon lies a sophisticated system meticulously designed to handle vast user-generated videos, likes, and personalized recommendations. From video uploads to tailored feeds, TikTok's design weaves together smart technologie
15 min read
Designing Content Delivery Network (CDN) | System Design
In the digital age, where online content material is king, the importance of delivering a seamless and rapid user experience can not be overstated. Content Delivery Networks (CDNs) play a vital role in attaining this aim by distributing content material strategically throughout servers globally. This article will guide you through the process of de
15 min read
Designing Zoom | System Design
Creating an app like Zoom may seem simple from the user's perspective, but in reality, it's a complex task involving hundreds of software engineers working for years. Zoom, like other similar apps, requires careful planning and design to provide seamless video conferencing services worldwide. This article explains how Zoom works and how it handles
14 min read
Designing Whatsapp Messenger | System Design
Ever thought about how this widely-used messaging app actually works behind the scenes? This article is your guide to the system design of WhatsApp. From handling tons of messages to making sure your chats are secure, we'll explore the technical aspects that keep this app running smoothly and managing things like managing data, keeping your message
7 min read
Designing Facebook Messenger | System Design Interview
We are going to build a real-time Facebook messaging app, that can support millions of users. All the chat applications like Facebook Messenger, WhatsApp, Discord, etc. can be built using the same design. In this article, we will discuss the high-level architecture of the system as well as some specific features like building real-time messaging, g
9 min read
Designing UPI - System Design
Designing a Unified Payments Interface (UPI) system involves creating an architecture that enables real-time inter-bank transactions through a seamless and secure platform. Key components include user interfaces, a central UPI switch managed by the National Payments Corporation of India (NPCI), backend systems of participating banks, and third-part
10 min read
Designing Twitter - A System Design Interview Question
Designing Twitter (or Facebook feed or Facebook search..) is a quite common question that interviewers ask candidates. A lot of candidates get afraid of this round more than the coding round because they don't get an idea of what topics and tradeoffs they should cover within this limited timeframe. Important Topics for Designing Twitter How Would Y
15+ min read
How Would you Design Amazon.com's Database - System Design
A thorough approach to designing Amazon's database involves managing customers, product catalogs, order processing, and recommendations alongside other elements. To ensure scalability, these components must be integrated: load balancers, application servers, caching, CDNs, search engines, and analytics tools. The key to building a robust and effici
12 min read
Design a system that counts the number of clicks on YouTube videos | System Design
Designing a Click Tracking System for YouTube Videos involves architecting a comprehensive and efficient solution to monitor and analyze user interactions with videos on the YouTube platform. Important Topics for Counting the number of Clicks on Youtube Videos System DesignRequirementsCapacity EstimationLow-Level Design (LLD)Database Design-High-Le
15+ min read
Design Restaurant Management System | System Design
In the modern restaurant industry, delivering exceptional dining experiences requires more than just good cuisine. Restaurant Management Systems have emerged as the secret ingredient for efficient operations and customer satisfaction. In this article, we are going to design a restaurant management system where users can effortlessly discover nearby
15 min read
Design a Picture-Sharing System - System Design
In the present day, the need for good tools to exchange and organize images has never been this much higher. As for social networking, e-shopping, personal branding, and many other related purposes, users anticipate that the sites they visit provide them with fast and dependable environments with or without loads of images that enable them to inter
11 min read
Google Cloud Platform - Designing an Issues Notification System using Cloud Run
Problem Statement: Consider your run a Software company. And you have a huge client list who frequently use your software. You host your software on Github so that its users can send information regarding bugs in them. You being a lead developer in the team, how will you design a system that notifies the development team on Slack whenever an issue
3 min read
Iterative Incremental Model in Designing System
The Iterative Incremental Model is a smart way to design complex systems. Instead of trying to figure everything out at the beginning, this approach breaks the project into smaller parts. Each part is then developed, tested, and added to the system, bit by bit. This method is great for projects where things might change or if the requirements aren'
8 min read
Agile Model In Designing System
The Agile model in the context of system design is a flexible and adaptive approach to designing systems that can respond to changing requirements and customer needs. The key objective is to create a functioning system as soon as possible and to refine it depending on input from stakeholders. The agile model also promotes customer and developer inv
9 min read
How to design a Live Video Streaming System Like ESPN
A Brief Overview In quite recent years, there has been increasing demand and growth in digital video processing and communication technology in the form of live streaming. Video streaming, that also live, requires a large amount of data to be processed and transferred within some limited bandwidth of communication channels. However, even with all t
8 min read
Design Video Sharing Service System like Youtube
PURPOSE OF VIDEO SHARING SERVICE SYSTEMYoutube is the advertisement based video sharing service that allows users to upload video based media contents. Users can upload, watch, search, like, dislike videos, add comments to videos. Users uploads/deletes videos only as a logout user but they can search/watch videos as a logout user. This service is a
15 min read
Amazon System Design Interview Questions
Amazon’s system design interviews can be tough, focusing on how well you can build scalable and efficient systems. In this guide, we’ll cover the types of questions you might face, how to approach them, and tips to help you shine. Whether you’re experienced or new to the field, understanding these questions and preparing effectively will help you s
15+ min read
Difference between System Design and System Architecture
When it comes to software development and engineering there can be some confusion, between the two terms "System Design" and "System Architecture." Although they are related they actually refer to stages and responsibilities in creating scalable and efficient systems. It is important to grasp the differences, between System Design and System Archit
3 min read
Distributed Messaging System | System Design
In our fast-paced world, how we share information matters more than ever. Old-school messaging setups sometimes struggle to keep up with today's tech demands. That's where distributed messaging systems step in. They're like a breath of fresh air, changing the game and making sure our messages get where they need to go, no matter what. Important Top
8 min read
System Analysis | System Design
In the areas of science, information technology, and knowledge, the difficulty of systems is of much importance. As systems became more complicated, the traditional method of problem-solving became inefficient. System analysis is to examine a business problem, identify its objectives and requirements, and then design the most optimal solution to fu
6 min read
System Design | Online Banking System
In the digital era, the layout of a Online Banking System is a critical element of any commercial enterprise, it not only affects user experience but also the growth of a service-providing company. This article explores the comprehensive guide to designing a Online Banking System for its efficient use. From practical and non-useful requirements to
12 min read
Resilient System - System Design
Imagine you're building a castle out of blocks. If you design it so that removing one block doesn't make the whole castle collapse, you've made something resilient. hen we talk about creating a resilient system, we're essentially doing the same thing but with computer systems. These systems are designed to handle problems like errors, crashes, or e
10 min read
Blob vs. File System in System Design
In system design, choosing the right method for storing and managing data is crucial for performance, scalability, and maintenance. Two common approaches are using Blobs (Binary Large Objects) and traditional file systems. Each has its own set of advantages and challenges, making them suitable for different use cases. This article explores the key
7 min read
three90RightbarBannerImg