Проектирование системы лояльности для ВКР: метрики, архитектура и защита
Статья ZDNet от 16 марта 2026 года рассказывает о карте T-Mobile Visa: 5% кешбэка на телефоны и аксессуары, скидки на связь, бонусы за рестораны и путешествия. За текстом стоит целый класс IT-задач: управление бонусными баллами в реальном времени, интеграция с банковскими API, синхронизация с биллинговой системой оператора. Для выпускника это не просто финансовая заметка — это готовый бизнес-кейс. В дипломе можно не только описать такой сервис, но и спроектировать его архитектуру, обосновать выбор стека, рассчитать нагрузку. Ниже разбираем, как превратить эту новость в сильную ВКР.
Три темы для диплома: от прототипа до внедрения
1. Микросервисный модуль начисления и списания баллов
Актуальность: система лояльности T-Mobile работает с тысячами транзакций в час — это требует асинхронной обработки и отказоустойчивости. Монолит тут не подходит.
Цель: разработать event-driven модуль для начисления кешбэка на основе событий от платёжного шлюза.
Задачи:
- Сравнить архитектурные стили (REST vs Message Broker).
- Выбрать брокер (Kafka / RabbitMQ) — обосновать метриками latency и throughput.
- Реализовать прототип с использованием Docker Compose.
- Протестировать под нагрузкой (JMeter, k6).
Структура: Глава 1 — обзор систем лояльности; Глава 2 — проектирование асинхронной архитектуры; Глава 3 — запуск и нагрузочное тестирование.
2. Интеграция внешних платёжных шлюзов в корпоративную платформу
Актуальность: карта T-Mobile Visa эмитирована банком-партнёром — в дипломе можно воспроизвести интеграцию между оператором и банком через API.
Цель: спроектировать слой адаптеров для REST API Visa/Mastercard и агрегации в единую шину данных (API Gateway).
Задачи:
- Описать протоколы (OAuth 2.0, ISO 8583/20022).
- Построить UML-диаграмму последовательности для транзакции «покупка — начисление баллов».
- Разработать спецификацию OpenAPI для сервиса-агрегатора.
- Оценить RTO/RPO (целевое время восстановления).
Структура: Глава 1 — стандарты финансовых API; Глава 2 — архитектура интеграции; Глава 3 — оценка надёжности.
3. Оптимизация базы данных для бонусных транзакций (High-Write нагрузки)
Актуальность: в момент распродажи T-Mobile число записей о начислении баллов может достигать десятков тысяч в минуту — база должна это выдержать.
Цель: сравнить SQL (PostgreSQL) и NoSQL (Cassandra) подходы для логов начислений, выбрать оптимальный с точки зрения cost-performance.
Задачи:
- Сгенерировать тестовый датасет (схема: user_id, action, amount, timestamp).
- Провести нагрузочный тест (Yandex.Tank / pgbench).
- Рассчитать TCO для двух вариантов (облако / bare-metal).
- Оформить результаты в виде графиков задержек P50, P99.
Структура: Глава 1 — модели данных для лояльности; Глава 2 — проектирование схемы и индексов; Глава 3 — бенчмарк и экономическое обоснование.
Аналитическая глава: обоснование стека
В дипломе часто просят сравнить 2–3 решения. В нашем случае можно взять борьбу синхронного (REST) и асинхронного (Event-driven) подходов. Статья о T-Mobile — хороший пример, где без асинхронности не обойтись: начисление баллов не должно блокировать платёж.
Вот удобная таблица для главы 1:
| Критерий | REST (синхронно) | Event-driven (Kafka) |
|---|---|---|
| Задержка на клиенте | Высокая (ожидание ответа базы) | Низкая (отправляем и забываем) |
| Отказоустойчивость | Требует circuit breaker | Встроенная репликация |
| Масштабирование пиков | Наращивание инстансов + базы | Партиционирование топиков |
| Пример из статьи | Если упадёт REST — транзакция может потеряться | Kafka сохранит события даже при падении потребителя |
Итог: обоснуйте выбор брокера через метрики требования к RPO (не более 5 секунд потери данных) и RTO (1 минута на восстановление).
Проектная часть: от схемы до кода
В этом разделе рисуем диаграмму компонентов архитектуры лояльности:
- Front-end (мобильное приложение / веб-кабинет T-Mobile).
- API Gateway (Kong / NGINX).
- Сервис аутентификации (SSO).
- Сервис начисления баллов (микросервис на Spring Boot или FastAPI).
- Брокер сообщений (Kafka Topik: loyalty.events).
- База данных логов (ClickHouse для аналитики + PostgreSQL для остатков).
Добавьте алгоритм начисления: платёж — событие в топик — consumer проверяет категорию покупки — рассчитывает 5% — обновляет баланс. Код не обязательно писать полностью, но можно вставить фрагмент обработчика событий в виде псевдокода:
def on_transaction(event):
category = get_mcc(event['mcc_code'])
rate = LOYALTY_RATES.get(category, 1)
points = round(event['amount'] * rate / 100)
save_balance(event['user_id'], points)
push_event('loyalty.calculated', {...})
Для соответствия ГОСТ 34.602-89 оформите ТЗ на сервис в приложении к диплому.
Тестирование и метрики
Без чисел ВКР рискует показаться абстрактной. Обязательно включите:
- Нагрузочное тестирование: с помощью k6 или JMeter создайте сценарий «1000 одновременных покупок».
- Метрики мониторинга: latency P95 (не более 100 мс), error rate (меньше 0.1%).
- RTO/RPO: для Disaster Recovery — время восстановления до 30 минут, потеря баллов не более 1 минуты.
Пример оформления результатов: таблица с замерами до и после оптимизации (сортировка ключей в Kafka, индексы БД).
Чек-лист: что проверить перед сдачей
- ✔ Ссылка на источник (статья ZDNet) в списке литературы.
- ✔ Соответствие целей задачам — каждое решение ведёт к заявленному результату.
- ✔ Наличие UML-диаграмм (вариантов использования, последовательности, компонентов).
- ✔ Результаты нагрузочного тестирования с указанием инструментов.
- ✔ Выводы по экономической эффективности (TCO, ROI).
- ✔ Проверка на соответствие ГОСТ 7.32-2017 (ВКР) и ГОСТ 34.602-89 (ТЗ на ПО).
Типичные ошибки студентов и как их избежать
Нельзя просто сказать: «используем Event-driven» — надо аргументировать, почему не подходит REST. Обоснуйте через задержки и отказоустойчивость.
Ошибка 2. Отсутствие метрик эффективности
Если вы проектируете систему лояльности — оцените, сколько запросов в секунду она выдержит. Используйте стандарты ISO/IEC 25010 (характеристики качества).
Ошибка 3. Игнорирование ГОСТов при оформлении ТЗ
Техническое задание без разделов «Требования к надёжности» и «Требования к информационной безопасности» — риск, что работу завернут на рецензии.
FAQ: ответы на частые вопросы
Сложно ли реализовать такой проект без опыта разработки?
Не обязательно писать полный код. Можно ограничиться архитектурными диаграммами и спецификациями. Но работа с Docker и Kafka в прототипе даст +10 баллов на защите.
В вузе требуют код. Как быть?
Разработайте минимальный прототип: REST-сервис на Flask/FastAPI + эмуляция очереди через Redis. Этого достаточно для демонстрации.
Как оформить UML, чтобы не придрались?
Используйте Enterprise Architect или draw.io. Важно: диаграмма последовательности должна отражать сценарий «покупка — начисление баллов». Добавьте расшифровку всех элементов.
Где брать тестовые данные для расчётов?
Сгенерируйте самостоятельно: случайные суммы покупок (от 1 до 5000 руб.), категории MCC (рестораны, электроника). Можно взять открытые датасеты с Kaggle (Credit Card Transactions).
Чему вы научитесь в процессе работы
- Проектировать event-driven микросервисы с обоснованием выбора брокера.
- Работать с метриками и критериями качества (ISO/IEC 25010).
- Составлять ТЗ по ГОСТ 34.602-89 и документацию для ВКР.
- Интегрировать финансовые API и защищать их безопасность.
- Аргументировать стек технологий на реальном бизнес-кейсе.
Источник: Earn 5% in rewards on phones, devices, and accessories with the T-Mobile Visa (опубликовано 2026-03-16)
```