подход к управлению распределёнными транзакциями крупная транзакция представляется последовательностью локальных операций в отдельных сервисах для каждой операции предусматривается компенсирующее действие, позволяющее…
Подключение тестирования к CI/CD через GitLab GitLab CI/CD — встроенный инструмент для автоматизации сборки и деплоя, который поддерживает работу с пайплайнами Тесты оформляются как джобы в .gitlab-ci.yml, а этапы…
Как обновлять захардкоженный список наград без передеплоя приложения? конфигурация через properties — файл входит в состав билда и связан с ним для внесения изменений требуется рестарт/деплой приложения внешний сервис…
Как организовать CI/CD для backend-приложения? CI/CD автоматизирует сборку, тестирование и деплой CI: каждый коммит запускает сборку и юнит-тесты Для создания pipeline можно использовать Jenkins, GitLab CI или GitHub…
Exactly-once обработка в Kafka: как реализовать и что учесть Тема: обработка сообщений, Kafka, идемпотентность В основе exactly-once находится транзакционная запись в Kafka через Transaction API Применяется…
Как выстроить контейнеризацию микросервисов? Применить Docker, чтобы упаковать микросервисы в лёгкие контейнеры Подготовить отдельный Dockerfile для каждого сервиса, указав необходимую среду выполнения и зависимости…
CI/CD автоматизирует сборку, тестирование и доставку приложения настроить Git и определить триггеры запуска pipeline подключить CI-сервер: Jenkins, GitLab CI или GitHub Actions запускать сборку и юнит-тесты…
Как работать с тестовыми стендами? окружения Dev, QA и Prod отличаются уровнем стабильности и правами доступа Dev предназначен для локальной разработки и быстрых изменений, поэтому часто бывает нестабильным QA…
механизм конкурентного ожидания в системах с несколькими каналами ожидает событие сразу на одном или нескольких каналах приостанавливает выполнение, пока хотя бы один канал не будет готов поддерживает чтение, запись и…
Как организовать graceful shutdown HTTP-сервиса с воркерами в Go? Контекст: управление остановкой сервиса, одновременно обрабатывающего HTTP-запросы и выполняющего фоновые задачи Для координации завершения применять…
структура данных для хранения пар ключ → значение внутри представляет собой хеш-таблицу ключ обязан быть comparable (поддерживать операцию ==) поиск, добавление и удаление выполняются в среднем за ~O(1) для обработки…