Category: System Design
-
Sidecar pattern
Introduction Deploy components of an application into a separate process or container to provide isolation and encapsulation. This pattern can also enable applications to be composed of heterogeneous components and technologies. This pattern is named Sidecar because it resembles a sidecar attached to a motorcycle. In the pattern, the sidecar is attached to a parent application and…
-
Forward Proxy vs. Reverse Proxy
1. Forward Proxy Many businesses use proxy servers to route and secure traffic between networks. A proxy server, sometimes referred to as a forward proxy, is a server that routes traffic between client(s) and another system, usually external to the network. By doing so, it can regulate traffic according to preset policies, convert and mask…
-
Saga distributed transactions pattern
Introduction The Saga design pattern helps maintain data consistency in distributed systems by coordinating transactions across multiple services. A saga is a sequence of local transactions where each service performs its operation and initiates the next step through events or messages. If a step in the sequence fails, the saga executes compensating transactions to undo…
-
Throttling Pattern
Introduction Control the consumption of resources used by an instance of an application, an individual tenant, or an entire service. This can allow the system to continue to function and meet service level agreements, even when an increase in demand places an extreme load on resources. Context and problem The load on a cloud application…
-
Strangler Fig Pattern
Introduction The Strangler Fig Pattern is a modern software design strategy for incrementally replacing or modernizing a legacy system. Inspired by the growth pattern of a strangler fig tree, which gradually envelops and replaces its host tree, this approach allows teams to safely transition away from legacy systems without disrupting business operations. Incrementally migrate a…
