Cloud Design Patterns Flashcards

1
Q

Create helper services that send network requests on behalf of a consumer service or application.

A

Ambassador

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Implement a façade or adapter layer between a modern application and a legacy system.

A

Anti-Corruption Layer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Decouple backend processing from a frontend host, where backend processing needs to be asynchronous, but the frontend still needs a clear response.

A

Asynchronous Request-Reply

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Create separate backend services to be consumed by specific frontend applications or interfaces.

A

Backends for Frontends

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Isolate elements of an application into pools so that if one fails, the others will continue to function.

A

Bulkhead

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Load data on demand into a cache from a data store.

A

Cache-Aside

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Let each service decide when and how a business operation is processed, instead of depending on a central orchestrator.

A

Choreography

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Handle faults that might take a variable amount of time to fix when connecting to a remote service or resource.

A

Circuit Breaker

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Split a large message into a claim check and a payload to avoid overwhelming a message bus.

A

Claim Check

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Undo the work performed by a series of steps, which together define an eventually consistent operation.

A

Compensating Transaction

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Enable multiple concurrent consumers to process messages received on the same messaging channel.

A

Competing Consumers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Consolidate multiple tasks or operations into a single computational unit.

A

Compute Resource Consolidation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Segregate operations that read data from operations that update data by using separate interfaces.

A

Command and Query Responsibility Segregation (CQRS)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Deploy multiple independent copies of application components, including data stores.

A

Deployment Stamps

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Use an append-only store to record the full series of events that describe actions taken on data in a domain.

A

Event Sourcing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Move configuration information out of the application deployment package to a centralized location.

A

External Configuration Store

17
Q

Delegate authentication to an external identity provider.

A

Federated Identity

18
Q

Protect applications and services by using a dedicated host instance that acts as a broker between clients and the application or service, validates and sanitizes requests, and passes requests and data between them.

A

Gatekeeper

19
Q

Use a gateway to aggregate multiple individual requests into a single request.

A

Gateway Aggregation

20
Q

Offload shared or specialized service functionality to a gateway proxy.

A

Gateway Offloading

21
Q

Route requests to multiple services using a single endpoint.

A

Gateway Routing

22
Q

Deploy backend services into a set of geographical nodes, each of which can service any client request in any region.

23
Q

Implement functional checks in an application that external tools can access through exposed endpoints at regular intervals.

A

Health Endpoint Monitoring

24
Q

Create indexes over the fields in data stores that are frequently referenced by queries.

A

Index Table

25
Coordinate the actions performed by a collection of collaborating task instances in a distributed application by electing one instance as the leader that assumes responsibility for managing the other instances.
Leader Election
26
Generate pre-populated views over the data in one or more data stores when the data isn't ideally formatted for required query operations.
Materialized View
27
Break down a task that performs complex processing into a series of separate elements that can be reused.
Pipes and Filters
28
Prioritize requests sent to services so that requests with a higher priority are received and processed more quickly than those with a lower priority.
Priority Queue
29
Enable an application to announce events to multiple interested consumers asynchronously, without coupling the senders to the receivers.
Publisher/Subscriber
30
Use a queue that acts as a buffer between a task and a service that it invokes in order to smooth intermittent heavy loads.
Queue-Based Load Leveling
31
Enable an application to handle anticipated, temporary failures when it tries to connect to a service or network resource by transparently retrying an operation that's previously failed.
Retry
32
Coordinate a set of actions across a distributed set of services and other remote resources.
Scheduler Agent Supervisor
33
Process a set of related messages in a defined order, without blocking processing of other groups of messages.
Sequential Convoy
34
Divide a data store into a set of horizontal partitions or shards.
Sharding
35
Deploy components of an application into a separate process or container to provide isolation and encapsulation.
Sidecar
36
Deploy static content to a cloud-based storage service that can deliver them directly to the client.
Static Content Hosting
37
Incrementally migrate a legacy system by gradually replacing specific pieces of functionality with new applications and services.
Strangler
38
Control the consumption of resources used by an instance of an application, an individual tenant, or an entire service.
Throttling
39
Use a token or key that provides clients with restricted direct access to a specific resource or service.
Valet Key