Overview

Software architecture is the foundational blueprint that defines the structure, behavior, and key characteristics of a software system. This section explores various architectural approaches, design patterns, and modeling techniques.

Key Topics

1. C4 Model

A hierarchical approach to visualizing and documenting software architecture across multiple abstraction levels.

2. Architectural Patterns

  • Microservices
  • Monolithic
  • Event-driven
  • Layered Architecture
  • Hexagonal Architecture

3. Design Principles

3 items under this folder.

Orthogonal Architecture

A design principle in which components are independent, so that changing one never forces a change in another and primitives combine freely without hidden interactions.

Orthogonality and Functional Programming

How functional programming supplies the mechanisms that make orthogonal architecture achievable, and why orthogonality is the architectural goal that FP naturally serves.

C4 Model for Software Architecture

A hierarchical approach to visualizing and documenting software architecture