Demystifying E-Commerce Applications

AZ Aug'20

Disclaimer:  Some of the interactive features might not work on the phone. For a complete experience, please view the same in a laptop/computer.

Welcome to June Series, this month we will be covering design for the E-Commerce Web Application
Below you will find a brief summary for the use-case and on its side, you will find the Learning Centre for a few useful resources that you might require to complete the architecture diagram. You can click on the individual tiles to open up a small textual definition for the same. For details about any other resource, refer, https://docs.microsoft.com/en-in/azure/?product=featured

I am thinking about these E-Commerce Application, how do they process so many orders, that too in sequence,  have a huge list of categories to search for. I am able to access their site from anywhere in the world, how does it not affect the response time? 

L
E
A
R
N
I
N
G
C
E
N
T
R
E
Azure CDN is used for caching of static content for faster access and improved bandwidth, you can set up CDN in different regions to ensure maximum availability with minimum latency for the cached content 
Azure Search is a cloud search solution with AI capabilities to store, enrich and process large unstructured content at scale. 
Azure Queue Storage is a service for storing large numbers of messages that can be accessed from anywhere in the world via authenticated calls using HTTP or HTTPS
Azure Cache for Redis provides an in-memory data store. It is mostly used to store key-value information. Redis improves the performance and scalability of systems that rely heavily on backend data stores.

Reference Architecture

Click of each Black Box to reveal the options, based on the question and your understanding, select the correct one. 

Ecommerce.PNG
Are you sure? 
Traffic manager is a Global Load Balancer which is used to balance the traffic between various regional components. 
 
Caching of static data? em.
Redis Cache for searching unstructured data? Is that the best use case for Redis Cache? 
Go to the Learning Centre to review.
Trick Question
Since 2019, the two independent offerings Application Insights and Log Analytics have been now merged into a single product, Azure Monitor. 
However, as per this diagram, it is Application Insights.
For a brief conclusion of the above architecture, we have a Web App that runs in a single region, accessible to web and mobile browsers. Any incoming order is first routed to a Storage Queue, which makes sure the orders are processed regardless of the load,  the order processing happens through an Azure Functions which is a serverless application calling third party payment APIs. Once the payment is processed, the order is recorded into a SQL database.
Below are the various other components the app interacts with for designated purposes, like Redis Cache is used for caching page outputs for better performance, Blob Storage is used for saving Images/Videos, etc, Azure Search for its AI capabilities to provide most relevant results in minimum response time and finally SQL Database for storing application-related data.