DESIGN AND IMPLEMENTATION OF A MICROSERVICES ARCHITECTURE IN HIGH-LOAD DISTRIBUTED SYSTEMS

ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ МИКРОСЕРВИСНОЙ АРХИТЕКТУРЫ В УСЛОВИЯХ ВЫСОКОНАГРУЖЕННЫХ РАСПРЕДЕЛЕННЫХ СИСТЕМ
Bogutskii A.
Цитировать:
Bogutskii A. DESIGN AND IMPLEMENTATION OF A MICROSERVICES ARCHITECTURE IN HIGH-LOAD DISTRIBUTED SYSTEMS // Universum: технические науки : электрон. научн. журн. 2025. 11(140). URL: https://7universum.com/ru/tech/archive/item/21278 (дата обращения: 05.12.2025).
Прочитать статью:

 

ABSTRACT

This article examines engineering approaches to the design and implementation of a microservices architecture intended for operation under high-load distributed system conditions. It considers the architectural principles of building microservices, methods for defining service boundaries, component interactions via Application Programming Interface Gateway and message brokers, as well as mechanisms for ensuring data consistency in distributed environments. Special attention is given to containerization and orchestration technologies, service meshes, routing and load balancing strategies, and the use of fault-tolerance patterns. It formulates engineering practices that enhance the flexibility, independence, and fault tolerance of components during distributed system scaling.

АННОТАЦИЯ

В данной статье изучаются инженерные подходы к проектированию и реализации микросервисной архитектуры, предназначенной для работы в условиях высоконагруженных распределенных систем. Рассматриваются архитектурные принципы построения микросервисов, методы определения границ сервисов, взаимодействия компонентов через Application Programming Interface Gateway и брокеры сообщений, а также механизмы обеспечения согласованности данных в распределенной среде. Особое внимание уделяется технологиям контейнеризации и оркестрации, сервис-мешам, стратегиям маршрутизации и балансировки нагрузки, а также применению паттернов отказоустойчивости. Формулируются инженерные практики, повышающие гибкость, независимость и отказоустойчивость компонентов при масштабировании распределенных систем.

 

Keywords: microservices architecture, distributed systems, scalability, containerization, orchestration, service mesh, API Gateway, message broker.

Ключевые слова: микросервисная архитектура, распределенные системы, масштабирование, контейнеризация, оркестрация, сервис-меш, API Gateway, брокер сообщений.

 

Introduction

The complexity of business logic and the number of requests all continuously rise in current distributed computing systems. Regardless of workload, users anticipate high availability and stability of services. Traditional monolithic architectures' capacity to adjust to these circumstances is becoming more and more constrained, which results in decreased performance and scaling issues. Microservice architectural approaches that emphasize modularity and component independence are becoming momentarily popular as a solution to these issues.

Microservice systems have become quite popular due to the progress of various cloud computing and containerization tools. This has resulted in providing opportunities for the automatic deployment and recovery of services. It is necessary to reevaluate engineering practices in design and testing in addition to architectural principles when moving from a monolith to microservices. Securing data consistency and coordinating service interactions are all given special consideration in high-load systems.

The component-based paradigm has been widely adopted, but there are still issues with performance optimization and manageability when scaling. A methodical approach involving architectural modeling, the use of dependable orchestration mechanisms, and ongoing system monitoring is necessary for the successful construction of a microservice architecture. The purpose of this article is to study engineering approaches to the design and implementation of microservice architecture for high-load distributed systems.

Main part. Architectural principles and design of microservice systems

Since traditional monoliths frequently experience reliability problems under heavy workloads, microservice architecture comes to light as the go-to option for high-load distributed systems. Particularly, conventional systems have always had issues with fault tolerance and scalability, so switching to a microservice architecture is essential to ensuring dependable operation.

Dividing the system into independent services improves reliability and reduces component coupling. Each service is deployed and scaled autonomously, as it allows the system to respond to workload changes without affecting the entire infrastructure. Studies have shown that the implementation of a microservice architecture makes it possible to minimize system response time and reduce the risk of failures [1].

The main motivations for adopting microservices in high-load systems are to ensure scalability and fault tolerance as the number of users and the volume of data grow. Microservices enable task distribution across various services, in contrast to monolithic systems where a single codebase acts as a «bottleneck» when scaling. Every service is created and implemented separately, so updates are made easier and the possibility of a single point of failure is decreased [2]. The system's resilience to peak loads is further increased by deployment automation and remote scaling of individual nodes.

When designing a microservice system, special attention can be paid to correctly defining service boundaries. These limits are typically based on domain logic (Domain-Driven Design, DDD). Each service corresponds to a specific business process or subdomain, setting the seal on high internal cohesion and low coupling between services. In this case, domain logic is encapsulated within pure functions and isolated from input/output (I/O) operations (fig. 1).

 

Figure 1. The principle of DDD architecture [3]

 

For routing client requests and managing cross-service functions (authentication, response aggregation, and logging), the Application Programming Interface (API) Gateway pattern is often used. The API Gateway has become a «fundamental component» that provides scalability, security, and reliability in distributed systems.

At the same time, internal interaction between divisions can be organized according to different models. An asynchronous architecture with an event bus or message broker is frequently used in place of synchronous calls. When using an event-driven approach, subscribers process the events that services exchange about completed actions and update their state appropriately.

In conclusion, the foundation for creating distributed systems that are fault-tolerant and scalable is microservice architecture. An application's development flexibility and component independence during deployment and updates are guaranteed when it is divided into separate services with well-defined boundaries. The use of DDD, event-driven approaches, and data exchange intermediaries helps reduce coupling and improve system manageability.

Implementation and management of microservices under high load

In modern systems, microservices are typically deployed in containers, which allows for isolation of each service’s environment and enables rapid application scaling. To manage groups of containers, orchestration platforms are used, primarily Kubernetes. It is the combination of containerization technology and Kubernetes that makes it possible to dynamically distribute loads and easily administer services even with heavy workloads. Kubernetes became the new norm because of its sophisticated features, including auto-scaling, self-healing for containers, and native support for cloud providers.

Kubernetes provides an autoscaling feature in the form of Horizontal Pod Autoscaler, or HPA, which adjusts the number of replicas of the pod automatically with the help of CPU utilization and latency metrics, thereby automatically scaling the number of instances of the service based on the load being processed in real time. The overall process of interaction between the autoscaler, replication controller, and metrics server is illustrated in the operational scheme of the HPA (fig. 2).

 

Figure 2. Operational scheme of the HPA in Kubernetes

 

In Kubernetes, incoming traffic is typically handled by Service and Ingress objects. The Service object operates within the cluster network, distributing requests among available pods, while the Ingress controller manages external access from outside the cluster. For simple load balancing, this pair is usually sufficient.

However, for advanced network traffic management and policy control, service meshes are typically used. The service mesh is considered to be a network layer with proxies in the form of sidecar containers attached to each service in the network. These proxies perform tasks such as application level routing, load balancing, encryption, and metric collection. For instance, all service meshes support mTLS encryption between services in the network to implement authentication and authorization policies. A service mesh simplifies distributed tracing and detailed monitoring since it controls all traffic at the 7th (application) layer of the OSI model. The most widely adopted service meshes in production environments are Istio and Linkerd. The mentioned service meshes are deployed on top of the Kubernetes platform and possess distinct characteristics that influence their selection by system architects (table 1).

Table 1.

Main characteristics of two popular service meshes [4, 5]

Service mesh

Features

Advantages

Disadvantages

Istio

Uses Envoy proxy as a sidecar; rich set of traffic management features.

Extensive policy and security capabilities (mTLS, RBAC, integration with Kubernetes).

Complex to configure and maintain; high overhead; noticeable latency and resource consumption compared to lighter solutions.

Linkerd

Lightweight service mesh; its own proxy written in Rust; supports basic routing capabilities (timeouts, retries, load balancing).

Easy to install and operate; significantly lower latency and resource consumption.

Fewer out-of-the-box advanced features compared to Istio.

 

Automatic scaling, in addition to HPA, can also be provided by cloud infrastructure, but within the Kubernetes context, HPA is traditionally used. In order to maintain the required workload level, this mechanism modifies the number of replicas operating by analyzing metrics like CPU, memory usage, or custom metrics. A service can therefore increase the number of instances during periods of high activity.

To intensify microservice resilience against failures, well-established fault-tolerance patterns may be used. For short-term collapses, the retry pattern is often applied. The client automatically repeats a failed request after a short delay, usually with an exponentially increasing backoff. This allows the system to «wait out» temporary unavailability of a service without user intervention. However, if a service remains unresponsive or overloaded, the circuit breaker pattern should be activated. It is a mechanism that «opens the circuit» after a series of failures. The circuit breaker immediately returns an error without contacting the problematic service, thus preventing cascading failures [6].

Finally, each service can run in multiple copies, known as replicas. If one replica goes down, others can process requests even without interruption. The process of monitoring pod status and spawning new replicas on different machines in case of failure is done automatically by container orchestration tools such as Deployment/ReplicaSet in Kubernetes.

The implementation of microservice architecture in high-load environments requires effective automation and orchestration tools. Containerization with Docker and service management through Kubernetes allow the infrastructure to adapt to dynamically changing conditions. The integration of service meshes such as Istio and Linkerd provides intelligent routing and centralized security control.

Architectural practices and implementation patterns

The practical implementation of a microservice architecture in high-load distributed systems requires a comprehensive approach that combines proper design, infrastructure optimization, and continuous monitoring. A typical architecture of a high-load microservice system includes three layers: a traffic load balancer, a business logic layer (a set of services), and a data storage subsystem [7]. Each service is packaged into a container and deployed in an orchestrator. Traffic distribution is handled by ingress controllers (such as NGINX or HAProxy) or by a service mesh, which provides routing, authorization, and connection health management.

Asynchronous interaction through message brokers is used to speed up communication between microservices. This method improves resilience to transient failures and lowers latency. Read and write operations are physically separated to reduce locking and data conflicts in typical production environments, where data exchange between services is event-driven or CQRS (Command Query Responsibility Segregation) based.

The right architectural topology reduces coupling and increases fault tolerance, as the failure of one microservice does not lead to the shutdown of other components. The implementation of a microservice-based system relies on a combination of technological subsystems that ensure automation, scalability, and reliability across all architectural layers (table 2).

Table 2.

 Core subsystems and technologies in microservice architecture

Subsystem

Technologies

Purpose

Containerization

Docker, Podman

Environment isolation, faster deployment

Orchestration

Kubernetes, Helm

Automatic scaling, lifecycle management

Communication

Kafka, RabbitMQ, gRPC

Asynchronous message exchange between services

Configuration Management

Consul, Etcd, ConfigMap

Centralized storage of environment parameters

Monitoring and Logging

Prometheus, Grafana, Loki

Metrics, visualization, alerting

CI/CD

GitLab CI, Jenkins, ArgoCD

Automation of build, testing, and deployment processes

Cloud Infrastructure

AWS EC2/EKS, Azure AKS

Elastic scaling and resource provisioning

 

Load testing can be considered one of the most important steps in microservices' architecture implementation. This helps one understand performance constraints and scaling factors to aim for in an application. The process typically involves the usage of tools such as JMeter, Locust, and k6 to simulate parallel requests being sent to the application in production.

Tests are performed at various load levels, from normal operation to stress mode, where the system functions at the limits of its capacity [8]. In contrast to monoliths, where degradation typically happens suddenly, microservice architectures typically show a gradual drop in performance as the load increases. Additionally, benchmark data under different CPU and memory configurations demonstrates that component-based architectures sustain steady throughput growth as resources expand (fig. 3).

 

Figure 3. Throughput in the Azure spring cloud environment-route service [9]

 

Efficient management of a microservice system requires continuous monitoring and automated failure response. The Prometheus and Grafana monitoring stack are used to collect and analyze metrics, while logging systems (Loki or the ELK stack) aggregate event and error logs [10]. Configured alerting mechanisms allow for timely responses to latency spikes, error growth, or the degradation of specific services.

Optimal service distribution, the use of asynchronous communication, and the introduction of CQRS models increase fault tolerance and accelerate request processing. In contrast to monolithic solutions, which abruptly degrade under high load, microservice systems maintain steady throughput growth during scaling. Modern observability tools, continuous integration and deployment automation, and constant monitoring allow for the prompt identification of anomalies and support the consistent operation of components in production settings.

Conclusion

Microservices architecture is one of the most efficient methods of designing distributed systems functioning in heavy-loaded operation settings. The primary advantages of microservices architecture are associated with independence and modularity, scalability, and fault tolerance. Applying principles of DDD and event-driven interaction schemes helps to minimize inter-service coupling and ensures data consistency in asynchronous operation sessions. The application of API Gateways and messaging brokers makes it simpler to distribute requests and provides well-managed service interaction processes related to security handling on the server side.

The integration of containerization technology and an orchestration solution based on Kubernetes, in combination with service meshes like Istio and Linkerd, provides the basis for implementing robust and adaptable systems. The application of automatic scaling via HPA, fault-tolerance patterns with implementation of retry and circuit breaker mechanisms, and monitoring provide for architectural flexibility improvement and establishing prerequisites for further development of distributed systems in the context of the cloud and hybrid environment.

 

References:

  1. Shelmanov D. Analysis and Design of High-Load Systems Based on Microservice Architecture // American Research Journal of Computer Science and Information Technology. 2024. Vol 7(1). P. 68-72.
  2. Smirnov A. Efficient microservices scaling: Kubernetes, autoscaling, and load balancing // International Journal of Advances in Computer Science and Technology. 2025. Vol. 14(6). P. 22-24.
  3. Chavan A. The Role of Domain-Driven Design in Successful Microservices Migration Strategies // Journal of Information Systems Engineering and Management. 2025. Vol. 10. P. 388-408. 10.52783/jisem.v10i45s.8888.
  4. Ganguli M., Ranganath S., Ravisundar S., Layek A., Ilangovan D., Verplanke E. Challenges and opportunities in performance benchmarking of service mesh for the edge // 2021 IEEE international conference on edge computing (EDGE). 2021. P. 78-85. IEEE.
  5. Garifullin R. Analysis and development of interfaces for emergency systems with multitasking processing: approaches to minimizing user errors and enhancing reliability // International scientific journal «Innovative Science». 2025. № 1-2-1. P. 20-24. EDN: SQWPDJ
  6. Punithavathy E., Priya N. Auto retry circuit breaker for enhanced performance in microservice applications // International Journal of Electrical & Computer Engineering. 2024. Vol. 14(2). DOI: 10.11591/ijece.v14i2.pp2274-2281 EDN: LIIHUL
  7. Smirnov A. Modern methods of backend system performance optimization: algorithmic, architectural, and infrastructural aspects // International Journal of Advanced Research in Science, Communication and Technology. 2025. Vol. 5(3). P. 262-266.
  8. Drogunova Y. The impact of test automation on the effectiveness of business digital transformation // Cold Science. 2025. №16. P. 53-60. EDN: AHHFWB
  9. Blinowski G., Ojdowska A., Przybyłek A. Monolithic vs. microservice architecture: A performance and scalability evaluation // IEEE access. 2022. Vol. 10. P. 20357-74. DOI: 10.1109/ACCESS.2022.3152803 EDN: JHKSCZ
  10. Blazhkovskii A. Collecting metrics for continuous platform monitoring // Universum: technical sciences : electronic scientific journal. 2025. №3(132). P. 10-15.
Информация об авторах

Bachelor’s degree, ITMO University, Russia, St Petersburg

бакалавр, Национальный исследовательский университет ИТМО, РФ, г. Санкт-Петербург

Журнал зарегистрирован Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), регистрационный номер ЭЛ №ФС77-54434 от 17.06.2013
Учредитель журнала - ООО «МЦНО»
Главный редактор - Звездина Марина Юрьевна.
Top