Software Design and Architecture

Architecture is decision-making under uncertainty: what to modularize, how services communicate, and which quality attributes dominate. This pillar links clean architecture, DDD, API design, and service patterns already in the catalog.

Audience: Senior engineers and architects shaping service boundaries.

Curriculum

  1. Cost-Aware Architecture
  2. Data Contracts and Ownership
  3. Quality-Attribute Scenarios
  4. Clean Architecture — Depend Inward
  5. Domain-Driven Design (DDD) Essentials
  6. SOLID Principles — Maintainable Object Design
  7. OOP Fundamentals — Encapsulation, Inheritance, Polymorphism
  8. Design Patterns in Java — Practical Catalog
  9. API Design — Clear Contracts Clients Can Trust
  10. REST vs GraphQL — Resources vs Client-Specified Queries
  11. The Twelve-Factor App — Cloud-Native Baselines
  12. Microservices Architecture — Independently Deployable Services
  13. Event-Driven Architecture — React to Facts, Don’t Chain Calls
  14. Client–Server Architecture

By Shubham Jain. Last reviewed 2026-07-15.

Shubham Jain · Learning Lab