Productivity as a quality attribute: coordination patterns
Coordination patterns help to efficiently organize the interaction between system components, optimize the use of resources and increase productivity.
The main planning strategies:
- Service Mesh is a pattern often used in microservice architecture. Its main feature is a sidecar proxy that accompanies each microservice.
Advantages: Separation of business logic from supporting functions. Reducing the complexity of microservice code.Localization of related functionality, which reduces communication delays.
Disadvantages: Additional load on the system due to the execution of the sidecar proxy. Complication of the architecture due to the multiplicity of functions that may not be needed for all requests.
- A Load Balancer is an intermediate component that distributes the load between servers or resources to avoid overloading.
Advantages: Partial server crashes are invisible to users. Facilitates scaling by allowing you to add more servers without noticeable delays to the user.
Disadvantages: Can become a point of failure if the balancer itself is not replicated. High speed of the scheduling algorithm is critical to maintain productivity.
- Throttling is a pattern that limits the number of simultaneous requests to a service, protecting it from overload.
Advantages: Smooth peak load management.
Disadvantages: The algorithm must be fast, otherwise overloading can occur due to the load balancing system itself. The need for large buffers in case of constant excess of system capacity.
- Map-Reduc is a pattern for processing large amounts of data that works on the principle of dividing the task into several stages in a distributed system.
Advantages: Allows you to efficiently process data sets using parallelism. Increases fault tolerance due to the independence of each processing node.
Disadvantages: Difficult to implement if data cannot be easily divided into similarly sized segments.