Skip to main content

29 docs tagged with "architecture"

View all tags

Architecture Fundamentals

Core principles of distributed systems architecture including CAP theorem, consistency models, availability, partition tolerance, and key trade-offs every engineer must understand.

CAP Theorem: A Senior Engineer's Deep Dive

A comprehensive guide to the CAP theorem in distributed systems, covering network partitions, consistency models, microservice-level trade-offs, interview questions, and real-world implementations.

Chapter 1: What Is Design and Architecture?

Martin demolishes the false distinction between "design" and "architecture", then presents the singular goal of software architecture: minimizing the human effort required to build and maintain a system.

Chapter 12: Components

Components are the units of deployment — JARs, DLLs, shared libraries. Martin traces their history from early relocatable binaries to modern package managers, establishing the foundation for the component cohesion and coupling principles that follow.

Chapter 13: Component Cohesion

Three principles govern which classes belong in which component: REP (Reuse/Release Equivalence), CCP (Common Closure), and CRP (Common Reuse). They form a tension triangle — understanding the trade-offs helps you choose the right grouping strategy for your project's stage.

Chapter 14: Component Coupling

Three principles govern dependencies between components: ADP (no dependency cycles), SDP (depend in the direction of stability), and SAP (stable components should be abstract). These principles shape large-scale architecture and determine which components can evolve independently.

Chapter 15: What Is Architecture?

Architecture is the shape of a system — the decisions that divide a system into components, arrange those components, and specify how they communicate. A good architect maximizes the number of decisions NOT made, keeping options open as long as possible.

Chapter 16: Independence

A good architecture supports independent developability, deployability, and operability. Martin explains the use-case, operational, and deployment decoupling modes and why the monolith-vs-microservices decision can and should be deferred.

Chapter 2: A Tale of Two Values

Every software system delivers two values — behavior and structure. Martin argues that structure (architecture) is almost always the more important of the two, yet teams chronically neglect it. Learn to use Eisenhower's Matrix to fight for architectural health.

Chapter 3: Paradigm Overview

The three programming paradigms — structured, object-oriented, and functional — each impose discipline by removing capabilities from the programmer. Martin shows how each paradigm maps directly to a fundamental concern of software architecture.

Chapter 6: Functional Programming

Functional programming's core discipline — immutability — eliminates entire classes of concurrency bugs. Learn how immutability, segregation of mutability, and event sourcing shape modern system design.

Chapter 8: OCP — The Open-Closed Principle

A software artifact should be open for extension but closed for modification. OCP is the architectural goal that drives Clean Architecture: protect high-level policy from changes in low-level details by controlling the direction of dependencies.

Chapters 17–20: Boundaries, Business Rules & Policy

Boundaries separate software elements and restrict knowledge between them. This section covers drawing lines between components, anatomy of boundaries, policy levels, entities, and use cases — the core of Clean Architecture.

Chapters 30–32: The Database, Web & Frameworks Are Details

Databases, web frameworks, and all third-party frameworks are details — implementation choices that should be deferred and hidden behind boundaries. Learn why treating them as the center of your architecture leads to rigidity and how to protect your business rules from them.

CQRS & Event Sourcing

Comprehensive guide on Command Query Responsibility Segregation (CQRS) and Event Sourcing, detailing architecture, implementation patterns, comparisons with alternatives, and deep dives for senior engineers.

Introduction to the ELK Stack

A comprehensive overview of the ELK Stack (Elasticsearch, Logstash, Kibana) and Beats — covering roles, system architecture, data flow, and primary use cases.

KRaft vs ZooKeeper: Kafka Metadata Architecture

A comprehensive guide comparing Apache Kafka's legacy ZooKeeper architecture with the modern KRaft (Kafka Raft) metadata mode — covering internal mechanics, failure scenarios, migration strategies, and production deep dives for senior engineers.

Kubernetes Fundamentals

Kubernetes architecture for beginners — control plane components, worker nodes, the API server, etcd, scheduler, kubelet, kube-proxy, and how they work together to run containerised workloads.

Redis: Overview & Architecture

Redis architecture internals, single-threaded model, I/O multiplexing, and use case decision guide for senior engineers.

Reverse Proxy vs. Load Balancer vs. API Gateway

A comprehensive guide comparing reverse proxies, load balancers, and API gateways — their differences, internal mechanics, architectural roles, alternatives, and production deep dives for senior engineers.

Serverless Architecture Patterns

Advanced Serverless Integration Patterns for DVA-C02 and Senior Engineering roles. Orchestration vs Choreography, Saga Pattern, and Strangler Fig.

System Design Knowledge Base

A comprehensive knowledge base for system design patterns, architectural principles, scalability strategies, and interview preparation for software engineers.

VMs vs. Docker vs. Kubernetes

A comprehensive guide comparing Virtual Machines, Docker, and Kubernetes — starting with ELI5 analogies for beginners and ending with kernel-level deep dives for seniors.