LearnSoftware engineeringSoftware Architecture Overview Patterns and Principles Overview Patterns and Principles in OOP Patterns and Principles in FP Patterns and Principles in Procedural C4 Model Overview By Example Domain-Driven Design (DDD) Overview DDD By Example in FP DDD By Example in OOP DDD By Example in Procedural Hexagonal Architecture Overview Hexagonal Architecture By Example in FP Hexagonal Architecture By Example in OOP Hexagonal Architecture By Example in Procedural Finite State Machine (FSM) Overview FSM By Example in OOP FSM By Example in FP FSM By Example in Procedural Cases Overview In FP — F# / Clojure / TypeScript / Haskell In OOP — Java / Spring Boot In Procedural — Go / Rust Last updated January 29, 2026