Tag: pattern
Browse 197 practical software engineering resources tagged with "pattern". Discover code recipes, design patterns, documentation templates, and in-depth guides to help you build, deploy, and maintain production-ready solutions involving pattern. Each resource is written for engineers who ship real systems, with copy-paste examples and practical trade-offs.
Software Design Patterns
Design patterns are reusable solutions to recurring problems in software design. They provide a shared vocabulary and proven templates for building maintainable, scalable, and robust systems.
The resources below cover creational, structural, and behavioral patterns across different languages and paradigms. Each guide explains the problem, the solution, and when to apply it.
Every resource includes clear explanations, copy-paste code, and practical warnings. Use them to make informed decisions, avoid production pitfalls, and speed up your delivery. If you are just getting started, read the beginner-friendly articles first; if you are experienced, jump straight to the advanced patterns and architecture guides. New resources are added regularly, so bookmark this page and check back for the latest patterns.
Build Resilient Systems with the Circuit Breaker Pattern
How to prevent cascading failures in distributed systems using circuit breakers with open, closed,...
Design Event-Driven Systems with Event Buses and Brokers
How to build loosely coupled systems using events, event buses, message brokers, and event sourcing...
Distribute Traffic with Load Balancing Algorithms
How to distribute incoming requests across multiple servers using round-robin, least-connections,...
Resilient Microservices with Circuit Breakers, Retries
How to build fault-tolerant distributed systems using microservices patterns including circuit...
Multi-Tenancy Architecture
Design multi-tenant applications with shared or isolated databases, tenant-aware routing, and data...
Retry with Exponential Backoff
Implement resilient retry strategies with exponential backoff, jitter, and circuit breaker...
Manage Distributed Transactions with the Saga Pattern
How to implement saga orchestration and choreography to maintain data consistency across...
Service Discovery
Implement service discovery with health checks, DNS-based resolution, and service registries for...
Secure and Observe Microservices with a Service Mesh
How to deploy Istio or Linkerd to add mTLS, traffic management, observability, and policy...
Workflow Engines
Orchestrate complex business processes with workflow engines, state machines, and long-running task...
Bridge Incompatible Interfaces with the Adapter Pattern
How to integrate legacy APIs, third-party libraries, and incompatible interfaces using object...
Scale Read and Write Workloads with CQRS
How to separate read and write models using Command Query Responsibility Segregation for optimized...
Model Complex Business Domains with Domain-Driven Design
How to structure code around business concepts using bounded contexts, aggregates, entities, value...
Create Objects Flexibly with the Factory Pattern
How to use factory methods, abstract factories, and dependency injection containers to decouple...
Build Maintainable Applications with Hexagonal Architecture
How to structure applications using ports and adapters to isolate business logic from frameworks,...
Implement Reactive Systems with the Observer Pattern
How to build event-driven, reactive systems using the observer pattern with pub/sub, event...
Ensure a Single Instance with the Singleton Pattern
How to guarantee exactly one instance of a class exists in an application using lazy...
Swap Algorithms at Runtime with the Strategy Pattern
How to encapsulate interchangeable algorithms and behaviors using the strategy pattern with...
Agent Tool Selection Pattern
Dynamically select which tools an LLM agent can use based on the task context. Reduce token usage...
Embedding Cache Pattern
Cache LLM embeddings to reduce API calls and cost. Store embeddings with a content hash key and...