In the introduction, the relevance of the dissertation topic is substantiated; the aim,
objectives, object, and subject of the research are formulated; the scientific novelty and
practical significance of the obtained results are revealed; the personal contribution of the
author is defined; and the approbation of the research results as well as their presentation
in scientific publications are described. Information on the structure and scope of the
dissertation is also provided.
In the first chapter, "Analysis of Modern Approaches to Designing High-Load Web
Systems", current trends in the development of web application architectures are
examined and analyzed, along with the specifics of their scaling and optimization under
microservice architectures and multi-frontend environments.
Subsection 1.1 characterizes the evolution of architectural approaches – from
monolithic solutions to microfrontend architectures with a focus on the BFF pattern.
Alternative approaches, namely GraphQL and API Gateway, are also considered, and a
comparative analysis of their applicability in scalable systems is provided.
Subsection 1.2 presents an overview of caching challenges in microservice
architectures, where a key task is the timely invalidation of stale data without
compromising consistency between services. Modern cache management approaches are
analyzed, including centralized solutions based on event-driven mechanisms, TTL
strategies, and tag-based caching.
Subsection 1.3 is devoted to the infrastructural aspects of scaling high-load web
systems. It examines the specifics of CI/CD in multi-frontend architectures, including
issues of excessive module coupling, build result caching, efficient artifact management,
and the distribution of computational resources. Practices for pipeline optimization in
environments with a large number of parallel components are analyzed. The limitations
of contemporary automation tools are identified, and directions for further research aimed
at improving deployment process efficiency – particularly in the context of multi-team
development – are outlined.
In the second chapter, "Modeling the Architecture of Interaction Between Client
and Server Components Based on the BFF Pattern in High-Load Web Systems", applied
aspects of designing the interaction architecture between the client interface and
microservices are examined.
Subsection 2.1 analyzes key issues related to the need to aggregate data from
multiple API providers, which is characteristic of microservice architectures.
Subsection 2.2 outlines specific limitations of existing integration solutions in the
B2B context, where high variability of partner APIs, the lack of unified contracts, and the
need for flexible data routing complicate the construction of scalable web systems. It is
shown that classical approaches to integrating REST and GraphQL do not provide
sufficient isolation of domain contexts and do not account for the necessity of separating
external (public) and internal (private) interfaces.
Subsection 2.3 presents a comparative analysis of widely used solutions –
WunderGraph, Apollo Federation, and GraphQL Mesh. A number of limitations are
identified, including rigid configuration structures, difficulties in maintaining separate
public and internal API contracts, dependence on centralized schemas, and challenges in
generating strongly typed SDKs in scenarios involving a large number of microservices
and heterogeneous domains.
Subsection 2.4 proposes a BFF-based approach that relies on an API provider
factory, a centralized API gateway, and a clear separation between public and private
APIs. This approach enables flexible request routing, access control at the gateway level,
and the ability to adapt integrations to different use cases without modifying client-side
logic. The feasibility of using BFF as an intermediary layer that standardizes interaction
with heterogeneous services in scalable web systems is substantiated.
In the third chapter, "Formalization of a Declarative Approach to Cache
Invalidation in Microservice Systems", the issues of ensuring data consistency in the
cache of high-load architectures are analyzed.
Subsection 3.1 examines the operational characteristics of modern caching systems
such as Redis, Memcached, and NCache. Key challenges of cache invalidation related to
the asynchronous nature of microservices are outlined, as this significantly complicates
the timely update of stale records. Particular attention is given to the event-driven
approach, illustrated by NCache as one of the commonly used solutions to this problem.