architecture

Practical resources about architecture for software engineers.

184 results

Designing Systems That Scale

Software architecture is the art of making trade-offs. Every pattern — from microservices to event-driven systems — solves specific problems while introducing new constraints. Understanding these trade-offs is what makes an engineer an architect.

This hub collects guides and patterns for API gateways, load balancing, circuit breakers, sagas, and service meshes. Whether you are designing a new system or modernizing a legacy monolith, these resources provide the mental models and implementation details you need.

intermediate

Data Lake vs Data Warehouse — Architecture Guide

A practical guide to Data Lake architecture: structured vs unstructured storage, lakehouse...

advanced

Data Mesh Architecture — Decentralized Data Ownership

A practical guide to Data Mesh: decentralizing data ownership to domain teams, treating data as a...

data data-ownership guide
advanced

Domain-Driven Design (DDD) — A Practical Guide

Learn DDD fundamentals: bounded contexts, entities, value objects, aggregates, and how to model...

advanced

Event-Driven Architecture — Queues, Topics, and Streams

A practical guide to event-driven architecture: events vs commands, message brokers, patterns like...

advanced

Event Sourcing — State as a Sequence of Events

A detailed analysis into Event Sourcing: persist state changes as events, reconstruct aggregates...

intermediate

GraphQL vs REST — When to Choose and How to Migrate

A decision guide comparing GraphQL and REST APIs: use cases, performance, caching, tooling, and...

advanced

gRPC in Microservices — High-Performance RPC Guide

A practical guide to gRPC for microservices: Protocol Buffers, streaming, load balancing, and...

advanced

Hexagonal Architecture — Ports, Adapters, and Testability

A complete guide to Hexagonal Architecture (Ports and Adapters): structure applications so domain...

hexagonal-architecture ports-and-adapters domain-driven-design testability
intermediate

Lakehouse Architecture — The Best of Both Worlds

A practical guide to Lakehouse architecture: combining data lake storage flexibility with data...

beginner

Layered Architecture — N-Tier Explained

A practical guide to Layered (N-Tier) Architecture: separating presentation, business logic, and...

advanced

Microservices Architecture — When to Use and When Not To

A practical guide to microservices: benefits, trade-offs, common patterns, and when to choose them...

intermediate

Modular Monolith — A Pragmatic Architecture

A practical guide to Modular Monoliths: combine the simplicity of monoliths with the modularity of...

modular-monolith monolith microservices module-boundaries
advanced

Monolith to Microservices — Migration Strategies

A practical guide to decomposing monoliths: strangler fig, branch by abstraction, and incremental...

intermediate

Onion Architecture — Dependency Inversion in Practice

A practical guide to Onion Architecture: organizing code around the domain model, enforcing...

intermediate

Serverless Architecture — Patterns and Anti-Patterns

A practical guide to serverless architecture: function design, cold starts, event-driven patterns,...

advanced

Software Architecture Guide

A guide to designing software architecture: monoliths vs microservices, layered architecture, data...

advanced

System Design Interview Guide: Key Concepts

A practical guide to system design interviews: scalability, databases, caching, load balancing,...

intermediate

Vertical Slice Architecture: Feature-First Organization

A practical guide to Vertical Slice Architecture: organizing code by feature instead of technical...

advanced

Complete Guide to Application-Level Caching

Implement in-memory, distributed, and hybrid caches at the application layer. Covers LRU caches,...

caching in-memory distributed-cache guide
advanced

Complete Guide to Cache Invalidation

Master cache invalidation strategies: TTL expiration, event-driven invalidation, versioned keys,...

No results found.