Saturday, 12 April 2025

System Design : Architecture Diagram : for a "E-Commerce Application"

 

System Design for an Ecommerce Application





1. System Components and Their Roles

  • User Interface (UI):

    • Users (Buyers/Sellers): The entry point, where actions like login, browsing, and cart management occur via web or mobile interfaces.

  • Security Layers:

    • SSL/HTTPS: Ensures all communication between the client and server is encrypted.

    • Firewall: Monitors and protects the system by filtering out malicious traffic.

    • API Gateway: Serves as the single entry point for API requests, handles routing to appropriate services, request validation, and sometimes load balancing.

  • Authentication & Session Management:

    • Authentication Service: Validates user credentials (login details) and provides authentication tokens.

    • Session Manager: Maintains user sessions using tokens or cookies. This layer can interface with cache systems (like Redis) to quickly validate sessions.

  • Microservices:

    • User Management Service: Handles user profile details, preferences, and account management.

    • Product Service: Provides product details, search functionalities, and inventory statuses.

    • Cart Service: Manages user carts, including adding and removing items.

    • Payment Service & Payment Gateway: Processes transactions, handling payment authentication, fraud checks, and communicating with external payment processors.

    • Pricing and Discount Service: Determines the pricing, applies discounts, tax calculations, etc.

    • Order Service: Coordinates the order lifecycle—from order placement to confirmation.

  • Data Layers:

    • Database (SQL/NoSQL): Stores user profiles, product catalogs, orders, inventory, etc.

    • Cache: Optimizes read-heavy operations (e.g., product listings, session data) for faster performance.

    • Queues (Message Brokers): Handles asynchronous processes like order confirmation emails, inventory updates, and communication between services.


2. End-to-End Flow Explanation

Step 1: User Login

  1. User Initiates Login:

    • The user accesses the login page via a web or mobile interface over HTTPS.

    • The browser establishes an SSL/TLS session ensuring secure communication.

  2. API Gateway and Authentication:

    • The login credentials (username and password) are sent to the API Gateway.

    • The API Gateway routes the request to the Authentication Service.

    • The Authentication Service verifies the user’s credentials against the user database.

  3. Session Creation:

    • Upon successful authentication, the Authentication Service issues an authentication token (e.g., JWT) and creates a new session record.

    • The token/session details may be stored in a session cache for quick access in subsequent API calls.

  4. Security Checks:

    • The firewall monitors the login attempt for unusual patterns or potential attacks.

    • Logging and monitoring services record the login event for auditing and security purposes.

Step 2: Page Visit and Browsing

  1. User Navigation:

    • The authenticated user browses through the product listings. Each request (fetch product details, search query, etc.) passes through the API Gateway.

  2. Data Retrieval & Caching:

    • The API Gateway directs requests to the Product Service or other relevant services.

    • For fast responses, the system checks the cache for popular product data; if not found, it queries the main database.

    • Any changes or user-specific recommendations are computed by the Pricing or Recommendation Services.

  3. Dynamic Content Generation:

    • The Product Service formats and returns data such as product images, pricing, and descriptions which is then rendered on the client side.

  4. Session Verification:

    • Each request from the client includes the authentication token.

    • The Session Manager quickly validates this token (often using cached session data) before processing the request.

Step 3: Adding an Item to the Cart

  1. Add to Cart Operation:

    • When a user selects “add to cart,” the request is sent via HTTPS to the API Gateway.

    • The API Gateway forwards the request to the Cart Service.

  2. Cart Update Process:

    • The Cart Service verifies the user’s session.

    • It checks product availability by querying the Product Service.

    • The service updates the user’s cart (which can be stored in an in-memory store or cache for quick access) and, if needed, synchronizes with the main database asynchronously through message queues for persistence.

  3. Feedback to User:

    • A successful add-to-cart notification is returned to the UI.

    • Real-time updates may trigger UI refreshes (e.g., mini-cart popup).

Step 4: Payment Process

  1. Initiating Checkout:

    • The user proceeds to checkout. The order summary (cart items, prices, and applicable discounts) is reviewed.

    • The Order Service receives a checkout request via the API Gateway.

  2. Order Validation:

    • The Order Service confirms that the cart is current (ensuring stock availability and updated pricing).

    • It may consult the Pricing Service to revalidate discounts and taxes.

  3. Payment Processing:

    • The API Gateway routes the payment request to the Payment Service.

    • The Payment Service performs several actions:

      • Payment Gateway Interaction: Communicates with an external Payment Gateway to handle the financial transaction.

      • Fraud Detection: May interact with fraud detection services to verify the legitimacy of the transaction.

      • Transaction Logging: Generates logs and records transaction details.

    • Payment Service confirms with the Payment Gateway once funds are authorized and captured.

  4. Order Finalization:

    • Upon successful payment, the Order Service updates the order status in the database.

    • A message is queued (using a message broker) for asynchronous operations such as sending confirmation emails, updating inventory, or processing shipping.

  5. Post-Payment Activities:

    • The UI displays a confirmation page to the user.

    • Users get an order summary along with the transaction reference number.

    • Background processes (via queue workers) further process tasks like sending notifications or updating seller dashboards.


3. End-to-End Flow Summary

  1. Login Flow:
    User logs in → API Gateway routes to Authentication Service → Session token creation → Session stored/validated via cache.

  2. Browsing and Product Exploration:
    User browses products → API Gateway routes queries to Product Service → Data fetched from cache/database → Product details displayed.

  3. Cart Management:
    User adds an item to the cart → API Gateway routes to Cart Service → Availability checked → Cart updated → Confirmation sent.

  4. Payment and Order Processing:
    User initiates checkout → Order Service validates and locks items → API Gateway routes payment to Payment Service → Payment Gateway processes transaction → Order finalized and notifications queued → Order confirmation displayed to the user.

No comments:

Post a Comment