System Design

 System Design

  1. Designing for scale
  2. Designing for availability
  3. Designing for performance
    1. Content delivery network
    2. Caching
  4. Designing for resilience
  5. Secure by design
    1. Perimeter Security
      1. Intrusion detection and Prevention
      2. Zscaler
    2. Network security
      1. Network Isolation
    3. Zero trust architecture
    4. Server security
    5. Application security
      1. Data at rest - Encryption using keys
      2. Data in transit
      3. Encryption
      4. Key management 
    6. Code Security
      1. OWASP guidelines
      2. Web security
    7. Authentication
      1. OAuth
      2. Single Signon
      3. LDAP
    8. Authorization
      1. Google Zanzibar
      2. OPA
    9. Mobile Security
    10. Wireless transmission security
    11. Penetration testing
  6. Architecture principles in system design
    1. 12 factor
    2. DRY
    3. SOLID
  7. Programming types
    1. Functional
    2. Reactive
  8. Architecture tools
    1. Abacus
  9. Modular design
    1. Do we need microservices? When to go for Microservices ?
    2. Building microservice architecture
      1. Breaking down into Microservices
      2. Domain driven design
      3. Inter service communication
        1. Direct Connectivity
        2. Circuit breakers
        3. Service Registry
      4. Distributed transaction management
      5. Saga and Compensating transaction
      6. API gateways and associated patterns
        1. Rate limiting
    3. Event based architecture
    4. Microservice Testing
      1. Pact.io - Pact is a code-first tool for testing HTTP and message integrations using contract tests.
      2. Pactflow
    5. CQRS and Event Sourcing
    6. Kafka
    7. Spring Boot, GraphQL
    8. ORM
    9. Microservices tools
      1. Zipkin
      2. Zookeeper
      3. Helm - like apt or yum for linux
      4. Hysterix
    10. Kubernetes, Istio, Rancher
    11. OCP
    12. Service Mesh - Istio
  10. Database design
    1. Polyglot Persistence
    2. Partitioning
    3. Clustering
    4. Sharding
    5. SQL Vs No SQL
    6. ACID Vs BASE  - 
    7. CAP -  
    8. Eventual Consistency
    9. Virtual databases
    10. In Memory databases
    11. Redis
  11. Data lake, Hadoop, Spark
  12. Elastic Search 
  13. Analytics
  14. Distributed Caching - HazelCast
  15. Site Reliability Engineering
  16. Observability
    1. Kibana
    2. ITRS - Application monitoring, AppDynamics
    3. Performance tracking
    4. Open Tracing, Open Census, Open Telemetry
  17. Code
    1. Code Quality tools, SAST, DAST
    2. Secure code analysis
    3. Build pipeline, Jenkins
    4. Git branching
  18. Automation
    1. Ansible
    2. Rundeck
  19. Workflow tools
  20. Rule Engine
  21. Low code configurable UI
  22. Machine learning

Comments

Popular posts from this blog

AWS Organizations, IAM

Key Concepts

Linear Algebra Concepts