Low Level Design & OOP
Design and Implement a Pluggable Notification Rate Limiter
Asked by:top companies
concurrencyextensibilityinterfacesobject_modelingstate_management
Problem Overview & Object Oriented Requirements
Design an in-memory notification gate that composes user, team, company, count, and message-size limits without changing its core workflow.
Design Principles: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion (SOLID).
Topics & Patterns: concurrency, extensibility, interfaces, object_modeling, state_management.
Class Design Breakdown
1. Identify Core Entities
List primary objects, state enums, value objects, and domain controllers.
2. Class Relationships
Define inheritance, composition, aggregation, and interface abstractions.
3. Apply Design Patterns
Incorporate Strategy, Factory, Observer, State, or Decorator design patterns.
4. Concurrency & Extensibility
Handle thread locks, synchronization, and future extensions cleanly.