Appearance
Patrones de escalabilidad, disponibilidad y estabilidad
Disponibilidad:
- Replication:
- Primary-Replica replication / Leader-Follower architecture / Active-Passive replication
- Multi-Primary
- Buddy Replication
- Fail-over
Estabilidad:
- Circuit Breaker
- Timeouts
- Let it Crash/Supervisors
- Crash Early (o Fail Fast)
- Bulkheads
- Steady State (clean up resources)
- SEDA (Staged Event-Driven Architecture)
- Throttling (o Rate Limiting)
Escalabilidad:
Estado:
Distributed Caching (Cache Distribuido):
- Write-behind
- Write-through
- TTL (Time To Live)
- Eviction policies (FIFO, LIFO)
- Peer-To-Peer
Los Data Grids (Cuadrículas de Datos):
- In-memory storage
- Durable storage
Constancia (Service record)
NOSQL:
- Key Value databases
- Document databases
- Graph databases
- Datastructure databases
RDBMS:
- Sharding
- Partitioning
- Replication
- Denormalization
- ORM + Rich domain model antipattern
- Sharding
HTTP caching
- Reverse Proxy
- CDN (Content Delivery Network)
Conjetura de Brewer (CAP theorem):
- Consistent/Atomic data
- Eventually Consistent data
Concurrency
- Message-Passing Concurrency
- Software Transactional Memory
- Dataflow Concurrency
- Shared-State Concurrency
Partition
Replication
Behavior:
Computer grids
Event-Driven Architecture
Messaging:
- Publish-Subscribe
- Point-to-Point
- Store-Forward
- Request-Reply
Actors:
- Fire-forget
- Fire-Receive-Eventually
Enterprise Service Bus
Domain Events
Event Stream Processing
Event Sourcing
Command & Query Responsibility Segregation (CQRS)
Load Balancing
Round robin allocation
Random allocation
Weighted allocation
Dynamic load balancing
- Work stealing
- Work donating
- Qeue depth querying
Parallel Computing
SPMD pattern
Master / Worker pattern
Loop Parallelism pattern
Fork / Join pattern
MapReduce pattern