3B SE

SE464: Software Design and Architectures

don’t really go to this class, but there seems some good guest lectures.

Things I need to master for Final:

  • The 5 SOLID principles and examples for each
  • Two kinds of partitioning: functional and data partitioning
  • The different quorum levels (week 4)
    • What happens when DHT quorum fails?

My writeup:

  • Sharding is to remove bottleneck in writing to DB
  • Read replicas is making copies of the DB, and let them be read only
  • Replication is to avoid data loss. You can replicate the entire DB or replicate shards based on the setup, so replication is not about sharding

Concepts

Week 1: Introduction to Software Architecture

Week 2: Design Principles

Week 3: Scalability, Caching, Proxies

Week 4: Databases and Distributed Consistency

Week 5: Choosing a Database, REST APIs

Week 6: Load Balancing and Microservices

Week 8: Architecture Modeling

Week 10: Push Notifications

Week 11: Architectural Styles and Async Communication

Week 12: Security

Week 13: Streaming vs Batch Processing