Skip to content

High level and low level design

High level design

  • optimize processes and increase throughput by using same resources
    • vertical scaling
  • preparing beforehand daily at non peak hours
    • preprocessing adn cron jobs
  • make system resilient - recovering form failures quickly
  • keep backups and avoid single point of failure
  • hire more resources
    • horizontal scaling
  • microservice architecture
    • each service performs specific task - decoupling
  • distributed systems
    • partitioning
  • load balancer
  • system should be
    • scalable
    • fault tolerance
    • extensible - easily modifiable to add new functionality
  • decoupling - separation of responsibility, dividing into small systems
  • logging and metrics

Low level design

  • classes
  • uml
  • functions
  • signatures