Bird
Raised Fist0
LLDsystem_design~12 mins

Pricing strategy (discounts, coupons) in LLD - Architecture Diagram

Choose your learning style10 modes available
System Overview - Pricing strategy (discounts, coupons)

This system manages pricing strategies including discounts and coupons for an e-commerce platform. It ensures that users receive correct price adjustments based on active promotions, coupon validity, and business rules.

Key requirements include validating coupons, calculating discounts, and applying them efficiently during checkout.

Architecture Diagram
User
  |
  v
Load Balancer
  |
  v
API Gateway
  |
  +-------------------+
  |                   |
Pricing Service   Coupon Service
  |                   |
  v                   v
Cache               Database
  |                   |
  +---------+---------+
            |
            v
        Database
Components
User
client
Initiates requests to apply discounts or coupons during checkout
Load Balancer
load_balancer
Distributes incoming user requests evenly to API Gateway instances
API Gateway
api_gateway
Routes requests to appropriate backend services and handles authentication
Pricing Service
service
Calculates final prices after applying discounts and business rules
Coupon Service
service
Validates coupons and manages coupon data
Cache
cache
Stores frequently accessed coupon and discount data for fast retrieval
Database
database
Stores persistent data for coupons, discounts, and pricing rules
Request Flow - 14 Hops
User → Load Balancer
Load Balancer → API Gateway
API Gateway → Coupon Service
Coupon Service → Cache
Cache → Coupon Service
Coupon Service → Database
Coupon Service → API Gateway
API Gateway → Pricing Service
Pricing Service → Cache
Cache → Pricing Service
Pricing Service → Database
Pricing Service → API Gateway
API Gateway → Load Balancer
Load Balancer → User
Failure Scenario
Component Fails:Cache
Impact:Coupon and discount lookups become slower due to direct database queries, increasing latency.
Mitigation:System falls back to database queries for coupon and discount data. Cache is rebuilt asynchronously to restore performance.
Architecture Quiz - 3 Questions
Test your understanding
Which component is responsible for validating coupon codes?
AAPI Gateway
BCoupon Service
CPricing Service
DLoad Balancer
Design Principle
This architecture separates concerns by using dedicated services for coupon validation and pricing calculation. It uses caching to improve performance and a load balancer to handle traffic distribution, ensuring scalability and responsiveness.

Practice

(1/5)
1. What is the primary purpose of implementing discounts and coupons in a pricing strategy?
easy
A. To reduce product quality
B. To increase the base price of products
C. To make the checkout process slower
D. To attract more customers and increase sales volume

Solution

  1. Step 1: Understand the role of discounts and coupons

    Discounts and coupons are marketing tools used to lower prices temporarily.
  2. Step 2: Identify the business goal

    Lower prices attract more customers, which can increase sales volume and customer loyalty.
  3. Final Answer:

    To attract more customers and increase sales volume -> Option D
  4. Quick Check:

    Discounts and coupons = attract customers [OK]
Hint: Discounts attract customers by lowering prices [OK]
Common Mistakes:
  • Thinking discounts increase prices
  • Confusing discounts with product quality
  • Assuming coupons slow checkout
2. Which of the following is the correct way to represent a discount of 20% in a pricing system?
easy
A. discount = 20
B. discount = 2
C. discount = 0.2
D. discount = 200

Solution

  1. Step 1: Understand percentage representation in code

    Percentages are usually represented as decimals for calculations, so 20% is 0.2.
  2. Step 2: Check each option

    discount = 0.2 uses 0.2 which is correct; others are incorrect as they represent wrong values.
  3. Final Answer:

    discount = 0.2 -> Option C
  4. Quick Check:

    20% = 0.2 decimal [OK]
Hint: Use decimal for percentage (20% = 0.2) [OK]
Common Mistakes:
  • Using whole number 20 instead of decimal
  • Confusing 2 or 200 as percentage
  • Not converting percentage to decimal
3. Consider this code snippet for applying a coupon discount:
price = 100
coupon_discount = 15  # fixed amount
final_price = price - coupon_discount
print(final_price)

What will be the output?
medium
A. 85
B. 15
C. 100
D. 115

Solution

  1. Step 1: Understand the variables

    Price is 100, coupon_discount is 15 fixed amount.
  2. Step 2: Calculate final price

    final_price = 100 - 15 = 85.
  3. Final Answer:

    85 -> Option A
  4. Quick Check:

    100 - 15 = 85 [OK]
Hint: Subtract fixed coupon value from price [OK]
Common Mistakes:
  • Confusing discount as percentage
  • Adding instead of subtracting discount
  • Printing coupon_discount instead of final price
4. In the following code, what is the error that prevents correct discount application?
price = 200
discount = 20  # intended as 20%
final_price = price - discount
print(final_price)
medium
A. Price should be multiplied by discount directly
B. Discount should be converted to decimal before calculation
C. Discount should be added to price
D. No error, code is correct

Solution

  1. Step 1: Identify discount representation

    Discount is 20 but intended as 20%, so it should be 0.2 in decimal.
  2. Step 2: Correct calculation method

    final_price should be price - (price * discount_decimal), not price - discount integer.
  3. Final Answer:

    Discount should be converted to decimal before calculation -> Option B
  4. Quick Check:

    20% = 0.2 decimal needed [OK]
Hint: Convert percentage to decimal before subtracting [OK]
Common Mistakes:
  • Subtracting integer discount directly
  • Adding discount instead of subtracting
  • Ignoring percentage to decimal conversion
5. You are designing a system that applies multiple discounts: a 10% seasonal discount and a $5 coupon. If the original price is $50, what is the correct final price after applying both discounts sequentially?
hard
A. $40.5
B. $45
C. $40
D. $42

Solution

  1. Step 1: Apply the $5 coupon discount first

    $50 - $5 = $45.
  2. Step 2: Apply the 10% seasonal discount

    $45 * 0.9 = $40.5.
  3. Step 3: Sequential discounts

    Coupon before percentage discount yields $40.5.
  4. Final Answer:

    $40.5 -> Option A
  5. Quick Check:

    Coupon then percentage = 40.5 [OK]
Hint: Order of discounts affects final price [OK]
Common Mistakes:
  • Applying discounts in wrong order
  • Adding discounts instead of subtracting
  • Ignoring percentage vs fixed discount difference
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard