Курс · Java-трек
Микросервисная архитектура на Java
Архитектурные решения, интеграции и проверка отказов
Границы сервисов, коммуникации, отказоустойчивость и observability.
Основные занятия ведёт Сергей Валерьевич Герасименко — практикующий разработчик и основатель ТЕРАКОР и ТЕРАКОР Digital.
- Java 21
- Spring Boot 4
- REST
- gRPC
- Kafka
- RabbitMQ
- Docker
- Testcontainers
Состав программы
Что входит в программу
24 ак. ч. с преподавателем · 12 модулей практики на готовых каркасах. Каждый модуль — проектный этап с критериями приёмки.
Границы сервисов и декомпозиция
- Монолит, модульный монолит и микросервисы: критерии выбора.
- Bounded context и ответственность за данные.
- Автономность и зависимости; запрет общей записи в чужую БД.
- Стоимость сетевых вызовов и эксплуатации.
Проект этапа
Domain Map
Задача: Разделить заказы, каталог и уведомления; зафиксировать владение данными и одно ADR.
Результат: Карта контекстов и архитектурное решение.
Критерии приёмки
- У каждого сервиса есть ответственность и данные.
- Обоснована хотя бы одна граница и альтернатива.
Паттерны устойчивости
- Gateway и discovery: назначение и ограничения.
- Timeout, retry, Circuit Breaker и bulkhead.
- Saga, Outbox и CQRS: обзор по бизнес-задачам.
- Resilience4j на подготовленной интеграции.
Проект этапа
Failure Lab
Задача: Настроить timeout и circuit breaker для обращения к каталогу, воспроизвести задержку.
Результат: Конфигурация и сценарий отказа.
Критерии приёмки
- Время ожидания ограничено.
- Fallback не сообщает об успешном заказе при отказе.
Идентичность и права доступа
- OAuth2 и OIDC: роли участников.
- Resource Server, JWT issuer/audience и scopes.
- Права на ресурс; 401 и 403.
- Service-to-service доступ; mTLS - обзор.
Проект этапа
Access Lab
Задача: Подключить готовый IdP, закрыть чтение чужого заказа и служебный endpoint.
Результат: Матрица доступа и security-тесты.
Критерии приёмки
- Невалидный токен отклоняется.
- Пользователь не получает чужие данные.
Контейнерный стенд
- Dockerfile и многоэтапная сборка.
- Docker Compose: сеть, переменные и volumes.
- Health, readiness и порядок готовности зависимостей.
- Лимиты ресурсов и запуск без root.
Проект этапа
Compose Lab
Задача: Упаковать один сервис и подключить к готовому стенду с БД.
Результат: Dockerfile и дополнение Compose.
Критерии приёмки
- Сервис запускается по инструкции.
- Пароли не встроены в образ.
Синхронный и асинхронный обмен
- REST client и HTTP Service Clients.
- Latency budget и цепочки вызовов.
- Команда, событие и фоновая задача.
- Correlation ID и распределённая трассировка.
Проект этапа
Integration Map
Задача: Реализовать один HTTP-вызов и составить схему альтернативного событийного сценария.
Результат: Рабочий вызов и решение о выборе транспорта.
Критерии приёмки
- Обоснован выбор синхронности.
- Идентификатор запроса проходит между сервисами.
EDA, идемпотентность и компенсации
- Choreography и orchestration.
- At-least-once и повторное событие.
- Outbox и идемпотентный обработчик.
- Saga и состояния; Event Sourcing - обзор.
Проект этапа
Duplicate Lab
Задача: Добавить дедупликацию на готовом обработчике и показать компенсацию отказа резервирования.
Результат: Обработчик и диаграмма состояний.
Критерии приёмки
- Повтор не повторяет бизнес-эффект.
- Компенсация явно отражена в состоянии заказа.
Контракты REST API
- Ресурсы и границы внешнего API.
- OpenAPI и совместимость изменений.
- Problem Details: RFC 9457.
- Версионирование; HATEOAS - обзор.
Проект этапа
Contract Lab
Задача: Описать API заказа и унифицировать ответы об ошибках.
Результат: OpenAPI и примеры ответов.
Критерии приёмки
- Контракт содержит успешный и ошибочные ответы.
- Изменение не ломает согласованный клиентский сценарий.
HTTP-семантика и валидация
- POST/PUT/PATCH/DELETE и идемпотентность.
- DTO, Jakarta Validation и обработка ошибок.
- Пагинация и фильтры.
- Idempotency key для создания заказа.
Проект этапа
Resource Lab
Задача: Доработать создание заказа и повтор запроса с одинаковым ключом.
Результат: Endpoint и проверки повторного запроса.
Критерии приёмки
- Одинаковый запрос не создаёт второй заказ.
- Неверный DTO даёт предсказуемый 400-ответ.
gRPC и Protobuf
- Контракт .proto и генерация Java-кода.
- Unary call и deadline.
- Статусы ошибок и совместимость полей.
- Streaming и gateway - обзор.
Проект этапа
gRPC Lab
Задача: По готовому каркасу реализовать unary-вызов проверки наличия товара.
Результат: Proto-контракт, клиент и серверный метод.
Критерии приёмки
- Deadline ограничивает ожидание.
- Отсутствующий товар и сетевой сбой различаются.
RabbitMQ и обработка задач
- Exchange, queue и binding.
- Spring AMQP и RabbitTemplate.
- Acknowledgment, prefetch и dead-letter queue.
- Повторная доставка и ограниченный retry.
Проект этапа
Queue Lab
Задача: Добавить очередь уведомлений, воспроизвести неуспешную обработку и dead-letter маршрут.
Результат: Обработчик и конфигурация очередей.
Критерии приёмки
- Подтверждение следует за обработкой.
- Плохое сообщение не повторяется бесконечно.
Kafka в микросервисной системе
- Topic, key, partition и consumer group.
- KafkaTemplate и KafkaListener.
- Offsets, дубликаты и порядок.
- Границы exactly-once; Connect и Schema Registry - обзор.
Проект этапа
Event Bus Lab
Задача: Опубликовать событие заказа и обработать его в проекции, проверить повтор.
Результат: Событийный маршрут и тестовые сообщения.
Критерии приёмки
- Ключ обеспечивает нужное распределение.
- Повтор не искажает состояние проекции.
Тестирование и итоговая защита
- Unit, integration, contract и e2e: выбор уровня.
- Testcontainers и WireMock на готовом стенде.
- Проверка отказов и диагностические логи.
- Runbook и демонстрация архитектурного решения.
Проект этапа
OrderPlatform Release
Задача: Запустить готовый набор тестов, добавить проверку одного сбоя и показать полный путь заказа.
Результат: Итоговый репозиторий, тест и runbook.
Критерии приёмки
- Проверены штатный путь и выбранный отказ.
- Автор объясняет границы гарантий и следующий шаг к эксплуатации.
Итоговый проект: OrderPlatform
OrderPlatform: учебная система заказов с готовыми каркасами сервисов. Участник последовательно реализует 12 небольших проектных этапов: границы, устойчивость, безопасность, контейнеры, REST/gRPC, брокеры и тесты.
- Domain Map
- Failure Lab
- Access Lab
- Compose Lab
- Integration Map
- и ещё 7 проектных этапов программы
Чему вы научитесь
Результаты программы — то, что проверяется на защите итогового проекта
Определять границы сервисов и фиксировать архитектурные компромиссы.
Выбирать синхронный или событийный обмен.
Настраивать защиту и ограничивать каскадные сбои.
Проверять повторную доставку и компенсацию операций.
Диагностировать и тестировать распределённый бизнес-сценарий.
Стоимость курса
24 академических часа · очно в Москве или онлайн
Микросервисная архитектура
24 ак. ч. · Spring Boot · gRPC · Kafka · Docker
Оплата за весь курс
- 12 модулей с практикой
- Итоговая аттестация
- Группа до 8 человек
- Сертификат УЦ ТЕРАКОР
Обучение лично у основателя ТЕРАКОР
Сергей Валерьевич Герасименко
Руководитель ТЕРАКОР Digital · ведущий преподаватель
Ближайший поток стартует в первый понедельник следующего месяца · осталось 4 места
Возможны вечерние занятия и обучение в выходные.
Все основные программы центра ведёт Сергей Валерьевич Герасименко — практикующий full-stack разработчик, технический директор и основатель ТЕРАКОР и ТЕРАКОР Digital.
Вы обучаетесь не у преподавателя-теоретика, а у специалиста, который сам разрабатывает программные системы и применяет технологии в коммерческих проектах.
Один руководитель.Два направления.Единая инженерная практика.
Сергей Герасименко — ведущий преподаватель и практикующий разработчик с многолетним опытом преподавания в ведущих учебных центрах страны. Проектирует современные программные системы и переносит рабочие инженерные практики в обучение.
-
17+
лет в Enterprise-разработке
-
25 000+
специалистов подготовил
-
5 000+
технических собеседований провёл
Enterprise-опыт, а не пересказ документации
Создавал программное обеспечение для Управления ОАО «РЖД» и спроектировал корпоративную систему «САОС» для массовых опросов. Система победила в конкурсе инновационных проектов РЖД и сегодня используется в крупных организациях. На занятиях Сергей разбирает именно те задачи, с которыми разработчики сталкиваются в реальных коммерческих компаниях.
Знает требования рынка изнутри
Проводит tech-собеседования для банков и IT-команд. На курсе — Spring Boot 4, Kafka 4, Core, SQL и архитектура. Mock-собеседования для выпускников включены.
Программа курса выстроена на основе реальных требований работодателей — именно тех, которые Сергей проверяет на собеседованиях каждый день.
Ключевые компетенции
-
Enterprise-архитектура — проектирование высоконагруженных систем (опыт в ОАО «РЖД»)
-
Java-экосистема — Java 21, Spring Boot 4, Spring AI: от основ до production-паттернов
-
Распределённые системы — практический опыт с Kafka 4 и микросервисной архитектурой
-
Базы данных — PostgreSQL на уровне production: оптимизация запросов, проектирование схем
-
System Design — подготовка к архитектурным секциям собеседований уровня Middle+
-
Техническое интервью — 5 000+ проведённых собеседований для банков и IT-компаний
ТЕРАКОР · ул. Каланчёвская, д. 15, м. Каланчёвская (по предварительной записи)
Открыть на Яндекс.Картах