StackPractices

architecture

Practical resources about architecture for software engineers.

186 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.

advanced

CQRS + Event Sourcing — Combined Guide

A practical guide to combining CQRS and Event Sourcing: separating read and write models,...

advanced

CQRS — Command Query Responsibility Segregation

A complete guide to CQRS: separate read and write models to optimize performance, scalability, and...

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: Domain-Centric Design Guide

A practical guide to Onion Architecture: organize code around the domain, enforce inward...

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: organize code by feature instead of technical...

No results found.