Skip to main content

41 docs tagged with "architecture"

View all tags

Apache Kafka Architecture & Core Fundamentals

Complete architectural overview of Apache Kafka — origins, the M×N integration problem, the 4 pillars of Kafka's extreme speed (sequential I/O, page cache, zero-copy, batching), message anatomy, and the dumb broker / smart consumer paradigm.

Architecture Fundamentals

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

Backend for Frontend (BFF)

Deep-dive into the Backend for Frontend pattern — aggregation mechanics, parallel fan-out, GraphQL BFF, OAuth Token Handler, response shaping, caching strategies, observability, and production failure modes for senior Spring Boot engineers.

CAP Theorem & PACELC: A Senior Engineer's Deep Dive

Full-depth guide to CAP theorem and PACELC — the GitHub 2018 incident, why 'choose 2 of 3' is misleading, PACELC's EL trade-off (latency vs consistency during normal operation), database classification matrix, conflict resolution costs, and Brewer's 12-year correction.

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.

Elasticsearch & The ELK Stack Overview

A comprehensive architectural overview of Elasticsearch and the ELK Stack — the book index analogy, inverted index mechanics, BM25 relevance scoring, typo tolerance, aggregations, and the dual-storage pattern.

How to Become a Senior Developer — 7 Coding Laws

A comprehensive guide to the 7 core coding laws that separate senior software engineers from junior developers — covering guard clauses, domain naming, anti-corruption boundaries, algebraic states, functional cores, structured error contracts, and atomic pull requests.

KRaft vs ZooKeeper: Kafka Metadata Architecture

Comprehensive guide comparing Apache Kafka's legacy ZooKeeper architecture with the modern KRaft (Kafka Raft) metadata mode — covering internal mechanics, failure scenarios, Strimzi Kubernetes deployment, 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.

Microservice Chassis

Deep dive into the Microservice Chassis pattern — building a Spring Boot auto-configuration starter that standardizes logging, tracing, error handling, health checks, security headers, and Resilience4j defaults across all services.

Payment Hub Architecture

Payment Hub vs Payment Gateway vs Payment Factory — architecture patterns, orchestration, channel abstraction, and Java/Spring engineering design for centralised payment processing.

Redis Advanced Data Structures & Algorithms

A senior deep dive into Redis advanced data types — Bitmaps, HyperLogLog, Geospatial, Streams, Sorted Sets, and Bloom Filters — with internals, memory math, production patterns, and when to use each.

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.

Service Decomposition

Strategic guide to microservice decomposition, applying Domain-Driven Design (DDD), high cohesion, loose coupling, and avoiding the distributed monolith.

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.

What Actually Breaks When Your App Gets Popular (System Design Evolution)

Comprehensive breakdown of failure modes when applications scale from a single server to millions of users — session traps, connection pool exhaustion, replication lag, cache stampede, synchronous HTTP bottlenecks, AI vector scaling, and the architectural judgment rubric based on JavaScript Mastery fundamentals.