Azure Patterns Practices and Architecture Flashcards
Can you explain the Ambassador Pattern?
The ambassador pattern is used to create a separate construct with common functions. These functions could be monitoring, logging, and comms encryptions; the idea does not have these functions in the functioning code. The ambassador is deployed with its partner and supplies functionality to the partner. In a container, it could be a sidecar container, or on Linux/Windows; it could be a service or process.
Can you explain the Anti Corruption Pattern?
The Anti-Corruption pattern involves creating a translation layer component between two components with differing interfaces. This layer ensures that each side of the anti-corruption layer is not corrupted. This component can be a sidecar, a process, or a service.
Can you explain the Throttling Pattern?
The throttling pattern is when a service throttles incoming requests to protect itself from running out of resources and to protect the service’s SLA.
Can you explain the Retry Limiting Pattern?
The retry pattern occurs when a call to a service fails for some reason, and the calling service has separate logic to automatically retry the requested functions.
Can you explain the Bulkhead Pattern?
The bulkhead pattern isolates different parts of a system into separate components or partitions (bulkheads) to prevent a failure in one part from cascading to others. This approach ensures that the rest of the system remains operational if one component fails. It improves overall system reliability and fault tolerance.
Can you explain the Circut Breaker Pattern?
The circuit breaker pattern is a design pattern used to prevent cascading failures in distributed systems by temporarily stopping requests to a service when it’s consistently failing. Once the failures reach a threshold, the circuit “opens” to halt further requests, allowing the service to recover. It improves system resilience by avoiding overwhelming an already failing service.
Can you explain the Sharding Pattern?
The sharding pattern is a database partitioning technique that divides data across multiple databases or servers to improve scalability and performance. Each shard holds a portion of the overall data, often based on a partition key like customer ID or region. This enables horizontal scaling, distributing workloads and storage efficiently across multiple nodes.