0
0
LLDsystem_design~12 mins

User, Group, Expense classes in LLD - Architecture Diagram

Choose your learning style9 modes available
System Overview - User, Group, Expense classes

This system manages users, groups, and expenses. Users can join groups and add expenses shared among group members. The system tracks who paid and who owes money.

Architecture Diagram
  +-------+       +--------+       +---------+
  | User  |<----->| Group  |<----->| Expense |
  +-------+       +--------+       +---------+
      ^               ^                ^
      |               |                |
      +---------------+----------------+
                      |
                 Database
Components
User
class
Represents a person using the system with attributes like name and ID.
Group
class
Represents a collection of users who share expenses.
Expense
class
Represents a cost paid by a user that is shared among group members.
Database
database
Stores persistent data for users, groups, and expenses.
Request Flow - 4 Hops
UserGroup
UserExpense
ExpenseDatabase
GroupUser
Failure Scenario
Component Fails:Database
Impact:New expenses cannot be saved; users cannot retrieve updated group or expense data.
Mitigation:Use database replication and caching to serve read requests; queue writes for retry when DB is available.
Architecture Quiz - 3 Questions
Test your understanding
Which component stores the persistent data for users, groups, and expenses?
ADatabase
BUser
CGroup
DExpense
Design Principle
This design separates concerns by modeling users, groups, and expenses as distinct classes. It uses a database for persistence and ensures communication flows logically from users to groups to expenses, supporting scalability and maintainability.