Design Patterns

view_in_ar Structural Patterns


Adapter

Allows incompatible interfaces to work together by wrapping an object in an adapter to make it compatible with another class.

Tags
StructuralInterface
Facade

Provides a simplified interface to a complex subsystem, making it easier to use and understand.

Tags
StructuralSimplification
Flyweight

Minimizes memory usage by sharing common data between multiple objects instead of storing it in each object.

Tags
StructuralOptimization
Proxy

Provides a surrogate or placeholder for another object to control access to it.

Tags
StructuralAccess Control

construction Creational Patterns


Factories

Provides an interface for creating objects without specifying their concrete classes, allowing for flexible object creation.

Tags
CreationalInstantiation

domain Domain-Driven Design


Aggregates

Groups related objects into a cluster with a root entity that ensures consistency and enforces invariants.

Tags
DDDDomain Model
CQRS

Command Query Responsibility Segregation - separates read and write operations into different models for better scalability.

Tags
DDDArchitecture
Event Sourcing

Stores the state of an entity as a sequence of events rather than just the current state.

Tags
DDDEvents
Event Versioning

Manages changes to event schemas over time while maintaining backward compatibility.

Tags
DDDEvents
Event Snapshotting

Creates periodic snapshots of aggregate state to optimize event sourcing performance for long event streams.

Tags
DDDEventsOptimization
Sagas

Manages long-running transactions across multiple services using a sequence of local transactions with compensating actions.

Tags
DDDDistributed

security Authentication & Security


JWT

JSON Web Token - a compact, self-contained way to securely transmit information between parties as a JSON object.

Tags
SecurityAuthentication
OAuth 2.0

An authorization framework that enables applications to obtain limited access to user accounts on an HTTP service.

Tags
SecurityAuthorization

integration_instructions Integration Patterns


API Gateway

A single entry point for all clients that routes requests to appropriate microservices and handles cross-cutting concerns.

Tags
IntegrationMicroservices
Choreography

Decentralized approach where each service produces and listens to events without a central coordinator.

Tags
IntegrationEvents
Orchestration

Centralized approach where a single service coordinates the interactions between multiple services.

Tags
IntegrationCoordination
Log Aggregation

Collects and centralizes logs from multiple services for easier monitoring and troubleshooting.

Tags
IntegrationObservability

hub Distributed Systems


Message Sharding

Distributes messages across multiple partitions or shards to enable parallel processing and improve throughput.

Tags
DistributedScalability
RabbitMQ Sharding

Implements sharding in RabbitMQ to distribute queue load across multiple nodes for better performance.

Tags
DistributedRabbitMQ

widgets Microservice Patterns


Microservice Pattern Language

Comprehensive collection of patterns for designing, implementing, and operating microservices architectures.

Tags
MicroservicesArchitecture
Success Triangle

Represents the balance between process, organization, and architecture required for successful microservices adoption.

Tags
MicroservicesStrategy

warning Antipatterns


Circular Dependency

Anti-pattern where two or more modules depend on each other directly or indirectly, creating tight coupling.

Tags
AntipatternArchitecture
Multiple Inheritance

Anti-pattern where a class inherits from multiple parent classes, leading to complexity and the diamond problem.

Tags
AntipatternOOP