Details
| Title | Разработка подхода агрегации ответов от множества микросервисов с использованием паттерна BFF: выпускная квалификационная работа магистра: направление 09.04.04 «Программная инженерия» ; образовательная программа 09.04.04_01 «Технология разработки и сопровождения качественного программного продукта» = Development of an approach for aggregating responses from multiple microservices using the BFF pattern |
|---|---|
| Creators | Лукьянов Владислав Петрович |
| Scientific adviser | Амосов Владимир Владимирович |
| Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Imprint | Санкт-Петербург, 2026 |
| Collection | Выпускные квалификационные работы ; Общая коллекция |
| Subjects | Java ; Spring Boot ; Spring WebFlux ; микросервисы ; BFF ; Backend for Frontend ; агрегация данных ; API Gateway ; Circuit Breaker ; Redis ; Docker ; Kubernetes ; gRPC ; REST API ; Resilience4J ; microservices ; data aggregation |
| Document type | Master graduation qualification work |
| Language | Russian |
| Level of education | Master |
| Speciality code (FGOS) | 09.04.04 |
| Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
| DOI | 10.18720/SPBPU/3/2026/vr/vr26-4896 |
| Rights | Доступ по паролю из сети Интернет (чтение) |
| Additionally | New arrival |
| Record key | ru\spstu\vkr\45069 |
| Record create date | 9/4/2026 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
| Group | Anonymous |
|---|---|
| Network | Internet |
Данная работа посвящена проектированию и разработке BFF-сервиса, выступающего единой точкой входа для клиентских приложений в микросервисной архитектуре. Сервис принимает запросы от фронтенда, параллельно обращается к множеству бэкенд-микросервисов, агрегирует их ответы и возвращает клиенту единый консолидированный результат. На основе многокритериального анализа существующих подходов (GraphQL Gateway, API Gateway, Custom BFF) обоснован выбор архитектуры Custom BFF. Для обеспечения отказоустойчивости используется паттерн Circuit Breaker с механизмом fallback-ответов. Кэширование агрегированных данных в Redis позволяет снизить нагрузку на нижележащие сервисы и уменьшить время отклика. Конфигурация маршрутов агрегации вынесена в YAML-файлы, что обеспечивает гибкость без необходимости пересборки приложения. Серверная часть реализована на Java 17 с использованием Spring Boot и реактивного стека Spring WebFlux, обеспечивающего неблокирующий ввод-вывод и эффективную параллельную агрегацию. Для высокопроизводительного межсервисного взаимодействия применяется gRPC наряду с REST API. Система развёрнута в Kubernetes-кластере с автоматическим масштабированием (HPA), балансировкой нагрузки через Kubernetes Services и Ingress Controller, а также мониторингом на базе Prometheus, Grafana и Jaeger. Результаты работы могут быть применены в промышленных микросервисных системах для централизации агрегации данных.
This work is devoted to the design and development of a BFF service that acts as a single entry point for client applications in a microservice architecture. The service accepts requests from the frontend, concurrently queries multiple backend microservices, aggregates their responses, and returns a unified consolidated result to the client. Based on a multi-criteria analysis of existing approaches (GraphQL Gateway, API Gateway, Custom BFF), the Custom BFF architecture was selected. To ensure fault tolerance, the Circuit Breaker pattern with a fallback response mechanism is used. Caching of aggregated data in Redis reduces the load on downstream services and decreases response time. The aggregation route configuration is externalized into YAML files, providing flexibility without the need to rebuild the application. The server side is implemented in Java 17 using Spring Boot and the reactive Spring WebFlux stack, which provides non-blocking I/O and efficient parallel aggregation. For high-performance inter-service communication, gRPC is used alongside REST API. The system is deployed in a Kubernetes cluster with automatic scaling (HPA), load balancing through Kubernetes Services and Ingress Controller, and monitoring based on Prometheus, Grafana, and Jaeger. The results can be applied in production microservice systems for centralized data aggregation.
| Network | User group | Action |
|---|---|---|
| ILC SPbPU Local Network | All |
|
| Internet | Authorized users SPbPU |
|
| Internet | Anonymous |
|