Содержание пакета (4 курса)
1. Java Backend Developer: Spring Boot 4, REST API, базы данных
Введение: современный Java Backend в 2026 году
3 урока
1.
Что такое backend-приложение на Java
↗
2.
Что мы будем разрабатывать в курсе
↗
3.
Стек курса
↗
Java для backend-разработчика: быстрое обновление базы
6 уроков
1.
Переменные, типы и методы в современном Java-коде
↗
2.
Классы, интерфейсы и records
↗
3.
Collections API для backend-задач
↗
4.
Optional, null-safety и обработка отсутствующих данных
↗
5.
Exceptions и модель ошибок
↗
6.
Современный стиль кода
↗
Создание Spring Boot 4 проекта
4 урока
1.
Создаём проект
↗
2.
Структура проекта
↗
3.
Первый endpoint
↗
4.
Конфигурация приложения
↗
REST API на Spring Boot 4
6 уроков
1.
Основы REST в прикладном backend
↗
2.
Controller layer
↗
3.
DTO и records
↗
4.
Валидация входных данных
↗
5.
Пагинация, сортировка, фильтрация
↗
6.
Практика: CRUD для задач
↗
База данных и миграции
5 уроков
1.
PostgreSQL в Docker
↗
2.
Flyway migrations
↗
3.
Проектирование таблиц для учебного проекта
↗
4.
Настройка datasource
↗
5.
Практика: первая схема БД
↗
Spring Data JPA и работа с данными
7 уроков
1.
Entity и Repository
↗
2.
Entity vs DTO
↗
3.
Связи между сущностями
↗
4.
Query methods
↗
5.
JPQL и @Query
↗
6.
Транзакции
↗
7.
Практика: полноценный слой работы с задачами
↗
Service layer и бизнес-логика
5 уроков
1.
Зачем нужен service layer
↗
2.
Use-case методы
↗
3.
Доменные проверки
↗
4.
Маппинг без лишней магии
↗
5.
Практика: выносим логику из controller
↗
Ошибки и единый формат API-ответов
5 уроков
1.
Типичные backend-ошибки
↗
2.
Custom exceptions
↗
3.
Global exception handler
↗
4.
Problem Details
↗
5.
Практика: приводим ошибки API к production-виду
↗
Безопасность: Spring Security без перегруза
7 уроков
1.
Что такое authentication и authorization
↗
2.
Подключение Spring Security
↗
3.
Регистрация и хранение паролей
↗
4.
JWT для REST API
↗
5.
Current user в приложении
↗
6.
Method security
↗
7.
Практика: защищаем TaskFlow API
↗
Конфигурация, профили и production-подход
6 уроков
1.
Profiles
↗
2.
Configuration properties
↗
3.
CORS
↗
4.
Логирование
↗
5.
Actuator
↗
6.
Практика: готовим приложение к запуску вне IDE
↗
Тестирование backend-приложения
5 уроков
1.
Виды тестов
↗
2.
Unit-тесты service layer
↗
3.
Тестирование controller layer
↗
4.
Integration tests с Testcontainers
↗
5.
Практика: тестируем основной сценарий
↗
Документация API
3 урока
1.
Зачем документировать API
↗
2.
OpenAPI / Swagger UI
↗
3.
Практика: документируем TaskFlow API
↗
HTTP-клиенты и внешние интеграции
4 урока
1.
Когда backend вызывает другие сервисы
↗
2.
RestClient
↗
3.
Retry и ограничение повторов
↗
4.
Практика: внешний сервис уведомлений
↗
Docker и запуск приложения
4 урока
1.
Dockerfile для Spring Boot приложения
↗
2.
Docker Compose
↗
3.
Production-профиль
↗
4.
Практика: запускаем всё одной командой
↗
Финальная сборка проекта и дальнейший рост
3 урока
1.
Что получилось в итоге
↗
2.
Что отличает учебный проект от production
↗
3.
Как развивать проект после курса
↗
2. Kotlin 2.4 для backend-разработчика
Kotlin в backend-разработке
5 уроков
1.
Где Kotlin применяют на сервере
↗
2.
Kotlin после Java
↗
3.
Kotlin после TypeScript, Go и C#
↗
4.
Kotlin 2.4 в контексте backend-проекта
↗
5.
Сквозной сервис курса
↗
Сборка и рабочая среда
6 уроков
1.
JDK, Kotlin и Gradle в одном проекте
↗
2.
Compiler options и K2
↗
3.
Модули backend-проекта
↗
4.
Форматирование и статический анализ
↗
5.
IDE и чтение Kotlin-кода
↗
6.
Compiler plugins и KSP
↗
Язык для серверного кода
6 уроков
1.
Переменные, функции и выражения
↗
2.
Null-safety на границах системы
↗
3.
Классы и модели данных
↗
4.
Sealed types для состояний и ошибок
↗
5.
Collections API в backend-коде
↗
6.
Extension functions
↗
Продвинутый Kotlin для серверного кода
7 уроков
1.
Generics, variance и reified
↗
2.
Делегирование и делегированные свойства
↗
3.
Лямбды, inline-функции и scope-функции
↗
4.
Type-safe builders и DSL
↗
5.
Context parameters
↗
6.
Value classes, equality и immutability
↗
7.
Что нового в Kotlin 2.2–2.4 для серверного кода
↗
Ошибки, результаты и границы API
5 уроков
1.
Exceptions в Kotlin/JVM
↗
2.
Инварианты домена: require, check и contracts
↗
3.
Result-типы в прикладном коде
↗
4.
Validation как часть boundary-слоя
↗
5.
Маппинг ошибок наружу
↗
Coroutines в backend-сервисе
8 уроков
1.
Что такое coroutine на JVM
↗
2.
Structured concurrency
↗
3.
Cancellation и timeouts
↗
4.
IO, blocking code и dispatcher-ы
↗
5.
Channels, select и разделяемое состояние
↗
6.
Flow для потоков данных
↗
7.
Coroutines и virtual threads
↗
8.
Coroutines и Spring/Ktor
↗
Spring Boot на Kotlin
6 уроков
1.
Spring Boot-проект на Kotlin
↗
2.
Controllers и DTO
↗
3.
Service layer
↗
4.
Configuration properties
↗
5.
Bean DSL, JSpecify и Kotlin-специфика Spring
↗
6.
Spring Boot tests на Kotlin
↗
Ktor как компактный backend-стек
6 уроков
1.
Ktor-проект на Kotlin
↗
2.
Routing и request pipeline
↗
3.
Serialization в Ktor
↗
4.
DI и структура приложения
↗
5.
Плагины Ktor, StatusPages и жизненный цикл
↗
6.
Тестирование Ktor API
↗
PostgreSQL и persistence
7 уроков
1.
Миграции и схема данных
↗
2.
JDBC
↗
3.
Spring Data JDBC и JdbcClient
↗
4.
Exposed для Kotlin-проекта
↗
5.
jOOQ в Kotlin-коде
↗
6.
Пагинация, JSONB и планы запросов
↗
7.
Transactions и consistency
↗
HTTP API и контракты
7 уроков
1.
REST API на Kotlin
↗
2.
Пагинация, фильтрация и сортировка
↗
3.
OpenAPI без ручного расхождения с кодом
↗
4.
Serialization: Jackson и kotlinx.serialization
↗
5.
Версионирование API и совместимость
↗
6.
SSE и WebSocket через Flow
↗
7.
Auth boundary
↗
Фоновые задачи и интеграции
6 уроков
1.
Scheduled jobs
↗
2.
Очереди и обработчики сообщений
↗
3.
Transactional outbox
↗
4.
Идемпотентные consumer-ы и дедупликация
↗
5.
Backfill-задачи
↗
6.
Внешние HTTP-клиенты
↗
Кэширование, Redis и устойчивость
5 уроков
1.
In-process кэш: Caffeine и Spring Cache
↗
2.
Redis из Kotlin: Lettuce и корутины
↗
3.
Распределённые блокировки и rate limiting
↗
4.
Retry, timeout и circuit breaker
↗
5.
Идемпотентность операций API
↗
Тестирование Kotlin backend-кода
7 уроков
1.
Unit tests без искусственных моков
↗
2.
MockK: где моки уместны
↗
3.
Kotest и property-based тестирование
↗
4.
Тестовые данные: builders и fixtures
↗
5.
Integration tests с PostgreSQL
↗
6.
HTTP tests
↗
7.
Coroutine tests
↗
Production-поведение приложения
6 уроков
1.
Logging
↗
2.
Metrics
↗
3.
Tracing
↗
4.
Configuration и secrets
↗
5.
Graceful shutdown и жизненный цикл
↗
6.
Performance-профиль Kotlin/JVM backend
↗
Контейнеризация и запуск
5 уроков
1.
Docker image для Kotlin/JVM сервиса
↗
2.
Health checks
↗
3.
Локальный docker-compose
↗
4.
CI pipeline
↗
5.
Быстрый старт: CDS, layered jar и GraalVM
↗
Kotlin-код в существующей Java/JVM-команде
5 уроков
1.
Java interop
↗
2.
Постепенная миграция проекта
↗
3.
Kotlin coding conventions для команды
↗
4.
Ошибки внедрения Kotlin
↗
5.
Kotlin API для Java-потребителей
↗
Итоговый сервис
5 уроков
1.
Архитектура итогового проекта
↗
2.
Реализация основного API
↗
3.
Фоновая операция
↗
4.
Production checklist
↗
5.
Дальнейшая траектория
↗
3. Работа с Play Framework 3 в Java 27
Play 3.0.11: устройство фреймворка и первый сервис
8 уроков
1.
Play 3 глазами разработчика с другого стека
↗
2.
Beacon: постановка задачи сквозного проекта
↗
3.
Сборка проекта: sbt, sbt-plugin 3.0.11, PlayJava
↗
4.
Раскладка проекта и генерируемый код
↗
5.
Dev-режим: перезагрузка, ошибки, локальный запуск
↗
6.
Точка входа: ApplicationLoader, Environment, Configuration
↗
7.
Первый контроллер и первый маршрут Beacon
↗
8.
Жизненный цикл: старт, остановка, ApplicationLifecycle
↗
Маршрутизация: routes-файл, роутер, обратные маршруты
9 уроков
1.
Как компилируется conf/routes
↗
2.
Параметры пути и строки запроса
↗
3.
PathBindable и QueryStringBindable
↗
4.
Обратные маршруты
↗
5.
JavaScript reverse router
↗
6.
Модульность маршрутов: include, префиксы, агрегация
↗
7.
Программный роутер: RoutingDsl
↗
8.
Свой Router и HttpRequestHandler
↗
9.
Практика: карта маршрутов Beacon
↗
Контроллеры, Action и Result
9 уроков
1.
Action, EssentialAction и конвейер обработки
↗
2.
Result: статусы, заголовки, тело
↗
3.
Http.Request, RequestHeader и атрибуты
↗
4.
Асинхронные действия
↗
5.
Session, Flash и cookies
↗
6.
Content negotiation
↗
7.
Композиция действий: play.mvc.Action и @With
↗
8.
ActionCreator и глобальные перехваты
↗
9.
Практика: слой контроллеров Beacon
↗
Тело запроса: BodyParser'ы
8 уроков
1.
Как Play читает тело
↗
2.
Встроенные парсеры и BodyParser.Of
↗
3.
JSON-тело: разбор и ошибки
↗
4.
Формы и multipart
↗
5.
Загрузка файлов
↗
6.
Свой BodyParser
↗
7.
Потоковое тело
↗
8.
Практика: импорт проверок в Beacon
↗
JSON, модели данных и валидация
8 уроков
1.
play.libs.Json и ObjectMapper Play
↗
2.
JsonNode против DTO
↗
3.
Настройка ObjectMapper через DI
↗
4.
Sealed-иерархии и полиморфный JSON
↗
5.
Формы и Bean Validation
↗
6.
Ошибки валидации в JSON API
↗
7.
XML, CSV и другие представления
↗
8.
Практика: контракт Beacon API v1
↗
Конфигурация, DI и модули
9 уроков
1.
HOCON и Config API
↗
2.
Guice в Play: биндинги и области видимости
↗
3.
Свои модули и play.modules.enabled
↗
4.
Типобезопасная конфигурация
↗
5.
Окружения: dev, test, prod
↗
6.
ApplicationLifecycle и внешние ресурсы
↗
7.
Compile-time DI
↗
8.
Тестовые переопределения
↗
9.
Практика: конфигурация Beacon
↗
Асинхронность: пулы, диспетчеры, Pekko
9 уроков
1.
Модель исполнения Play
↗
2.
ClassLoaderExecutionContext и контекст запроса
↗
3.
Свои execution context'ы
↗
4.
Блокирующий код в асинхронном фреймворке
↗
5.
Java 27: виртуальные потоки в Play-приложении
↗
6.
Pekko-акторы внутри Play
↗
7.
Планировщик Pekko и периодические задачи
↗
8.
Таймауты, отмена, устойчивость
↗
9.
Практика: планировщик проб Beacon
↗
База данных: JDBC, эволюции, транзакции
9 уроков
1.
play-java-jdbc и play.db.Database
↗
2.
Эволюции: формат и применение
↗
3.
Эволюции в жизни проекта
↗
4.
DatabaseExecutionContext
↗
5.
Репозитории Beacon
↗
6.
Транзакции и согласованность
↗
7.
HikariCP и пул соединений
↗
8.
Ebean, JPA и другие варианты доступа к данным
↗
9.
Практика: схема и репозитории
↗
Play WS: исходящие HTTP-вызовы
9 уроков
1.
WSClient: подключение и первый вызов
↗
2.
Таймауты, редиректы и TLS
↗
3.
Разбор ответа и обработка ошибок
↗
4.
WSRequestFilter и наблюдаемость исходящих вызовов
↗
5.
Устойчивость: ретраи, backoff, circuit breaker
↗
6.
Потоковая работа с ответом
↗
7.
Тестирование кода, который ходит наружу
↗
8.
Пулы соединений и нагрузка
↗
9.
Практика: ProbeRunner
↗
Pekko Streams и потоковые ответы
8 уроков
1.
Source, Flow, Sink в контексте Play
↗
2.
Chunked-ответы
↗
3.
Server-Sent Events
↗
4.
Backpressure и материализация
↗
5.
Отдача файлов и range-запросы
↗
6.
Шина событий: BroadcastHub и MergeHub
↗
7.
Ошибки и завершение потоков
↗
8.
Практика: живой поток статусов
↗
WebSocket
8 уроков
1.
WebSocket в Play: API и жизненный цикл
↗
2.
Flow-based соединения
↗
3.
ActorFlow и акторы на соединение
↗
4.
Аутентификация и авторизация соединения
↗
5.
Протокол сообщений
↗
6.
Надёжность соединения
↗
7.
Тестирование WebSocket
↗
8.
Практика: live-дашборд Beacon
↗
Twirl, формы, ассеты и i18n
9 уроков
1.
Twirl: шаблон как класс
↗
2.
Layout, партиалы, DI в шаблонах
↗
3.
Формы в шаблонах и CSRF
↗
4.
Валидация форм и отображение ошибок
↗
5.
Ассеты
↗
6.
Интернационализация
↗
7.
Кастомные форматы Twirl
↗
8.
PRG, flash и навигация
↗
9.
Практика: публичная статус-страница
↗
Фильтры и безопасность
9 уроков
1.
EssentialFilter и Filter API
↗
2.
Стандартные фильтры Play
↗
3.
Порядок фильтров и составные сценарии
↗
4.
Сессия Play и подпись cookie
↗
5.
Аутентификация: Security.Authenticated и своё решение
↗
6.
API-ключи и авторизация
↗
7.
Ограничение частоты запросов
↗
8.
HTTPS, заголовки и типовые угрозы
↗
9.
Практика: контур безопасности Beacon
↗
Ошибки, кэш, производительность
9 уроков
1.
HttpErrorHandler
↗
2.
Доменные ошибки и их отображение
↗
3.
Логирование
↗
4.
Кэш: AsyncCacheApi и Caffeine
↗
5.
HTTP-кэширование ответов
↗
6.
Наблюдаемость
↗
7.
Настройка сервера Pekko HTTP
↗
8.
HTTP/2 и производительность транспорта
↗
9.
Практика: наблюдаемость Beacon
↗
Тестирование, сборка и эксплуатация
9 уроков
1.
Тестовая инфраструктура Play
↗
2.
Юнит-тесты контроллеров
↗
3.
Функциональные тесты
↗
4.
Тесты с базой данных
↗
5.
Тесты внешних вызовов
↗
6.
Тесты маршрутизации, безопасности и потоков
↗
7.
sbt dist и stage: что внутри артефакта
↗
8.
Docker-образ и prod-конфигурация
↗
9.
Практика: релиз Beacon
↗
Micronaut 5: компиляция вместо рефлексии
8 уроков
1.
Meterway: задача, которую решает курс
↗
2.
Compile-time модель: что Micronaut делает вместо рефлексии
↗
3.
Первый проект: Micronaut Launch и Gradle Kotlin DSL
↗
4.
Что генерирует annotation processor
↗
5.
ApplicationContext и жизненный цикл приложения
↗
6.
Конфигурация: окружения, источники, config imports
↗
7.
Micronaut Gradle Plugin и Test Resources
↗
8.
Практика: каркас Meterway
↗
Контейнер бинов: DI, скоупы, конфигурация
10 уроков
1.
jakarta.inject в Micronaut
↗
2.
Скоупы бинов
↗
3.
Квалификаторы и выбор среди нескольких реализаций
↗
4.
@Factory: бины из чужих классов
↗
5.
@Requires: условная регистрация бинов
↗
6.
@Replaces и подмена реализаций
↗
7.
@ConfigurationProperties и типобезопасная конфигурация
↗
8.
@EachProperty и @EachBean: семейства бинов
↗
9.
BeanContext, BeanProvider и события контейнера
↗
10.
Практика: реестр метрик Meterway
↗
HTTP-сервер: контроллеры, привязка, ответы
10 уроков
1.
@Controller и маршрутизация
↗
2.
Привязка простых параметров
↗
3.
@Body и составные структуры
↗
4.
HttpResponse и формирование ответа
↗
5.
Content negotiation
↗
6.
@ServerFilter и конвейер запроса
↗
7.
Загрузка файлов и потоковые ответы
↗
8.
Ошибки и их маршрутизация
↗
9.
Netty-сервер: настройка и лимиты
↗
10.
Практика: ingest API Meterway
↗
Контракты API: сериализация, валидация, ошибки, OpenAPI
9 уроков
1.
Micronaut Serialization вместо Jackson Databind
↗
2.
Настройка сериализации
↗
3.
Свои сериализаторы
↗
4.
Валидация запросов
↗
5.
Свои ограничения
↗
6.
Ошибки в формате RFC 9457
↗
7.
OpenAPI из исходников
↗
8.
JSON Schema и валидация конфигурации
↗
9.
Практика: контракт Meterway
↗
Модель исполнения: event loop, виртуальные потоки, реактивность
9 уроков
1.
Netty event loop
↗
2.
@ExecuteOn и TaskExecutors
↗
3.
Виртуальные потоки в Micronaut 5
↗
4.
Reactive Streams как первоклассный тип
↗
5.
Micronaut Reactor
↗
6.
Распространение контекста
↗
7.
Потоковый ingest
↗
8.
Асинхронные ошибки и таймауты
↗
9.
Практика: неблокирующий приём батчей
↗
Micronaut Data JDBC: сущности, репозитории, запросы
11 уроков
1.
Репозитории, которых нет в рантайме
↗
2.
@MappedEntity и модель данных
↗
3.
CrudRepository и его родня
↗
4.
Производные запросы
↗
5.
@Query и native SQL
↗
6.
Проекции и DTO
↗
7.
@Relation и связи
↗
8.
Criteria API и динамические фильтры
↗
9.
Пагинация
↗
10.
Батчи и большие объёмы
↗
11.
Практика: слой данных Meterway
↗
Транзакции, миграции и работа со схемой
9 уроков
1.
@Transactional в Micronaut
↗
2.
Распространение и изоляция
↗
3.
Программные транзакции
↗
4.
Ловушки транзакций
↗
5.
Flyway в Micronaut
↗
6.
Схема Meterway
↗
7.
Оптимистичная блокировка и ETag
↗
8.
Несколько источников данных
↗
9.
Практика: закрытие расчётного периода
↗
AOP на этапе компиляции
9 уроков
1.
Как устроен AOP в Micronaut
↗
2.
@Around и MethodInterceptor
↗
3.
Свои аннотации и биндинги
↗
4.
@Retryable и @CircuitBreaker
↗
5.
Программные retry и circuit breaker
↗
6.
Кэширование
↗
7.
@Introduction: реализация интерфейса перехватчиком
↗
8.
Диагностика AOP
↗
9.
Практика: аудит и лимитирование
↗
HTTP-клиенты и устойчивые интеграции
9 уроков
1.
Декларативный @Client
↗
2.
Низкоуровневые клиенты
↗
3.
Конфигурация клиента
↗
4.
Фильтры клиента
↗
5.
Ошибки клиента
↗
6.
Устойчивость интеграций
↗
7.
Service discovery и балансировка
↗
8.
Тестирование клиентов
↗
9.
Практика: доставка вебхуков
↗
Micronaut Security: аутентификация и авторизация
11 уроков
1.
Архитектура Micronaut Security
↗
2.
Правила доступа
↗
3.
AuthenticationProvider
↗
4.
JWT
↗
5.
Refresh-токены
↗
6.
Аутентификация по API-ключу
↗
7.
Авторизация по данным
↗
8.
Мультитенантность
↗
9.
OAuth2 и внешние провайдеры
↗
10.
CSRF, CORS и служебные эндпоинты
↗
11.
Практика: две схемы аутентификации
↗
Redis: кэш, счётчики квот, распределённые примитивы
9 уроков
1.
Micronaut Cache
↗
2.
Подключение Redis
↗
3.
Работа с Lettuce из Micronaut
↗
4.
Redis как cache-провайдер
↗
5.
Атомарные счётчики и Lua
↗
6.
Распределённые блокировки и однократность
↗
7.
Redis Pub/Sub
↗
8.
Согласованность кэша и БД
↗
9.
Практика: квоты в реальном времени
↗
Планировщик, события и фоновая работа
9 уроков
1.
@Scheduled
↗
2.
TaskScheduler
↗
3.
Пулы планировщика
↗
4.
Однократность в кластере
↗
5.
События приложения
↗
6.
События жизненного цикла
↗
7.
@Async
↗
8.
Graceful shutdown
↗
9.
Практика: конвейер закрытия периода
↗
Micronaut Kafka
10 уроков
1.
@KafkaClient
↗
2.
@KafkaListener
↗
3.
Ключи, партиции и порядок
↗
4.
Сериализация сообщений
↗
5.
Ошибки консьюмера
↗
6.
Non-blocking retry topics
↗
7.
Батчи и ручной коммит
↗
8.
Kafka Streams
↗
9.
Транзакции Kafka
↗
10.
Практика: конвейер ingest → aggregate
↗
Тестирование Micronaut-приложений
11 уроков
1.
@MicronautTest
↗
2.
Test Resources
↗
3.
Подмена бинов в тестах
↗
4.
Тестирование контроллеров
↗
5.
Тестовые окружения и свойства
↗
6.
Тестирование данных и транзакций
↗
7.
Тестирование Kafka
↗
8.
Тестирование безопасности
↗
9.
Testcontainers вручную
↗
10.
Скорость тестов
↗
11.
Практика: тестовый контур
↗
Наблюдаемость
10 уроков
1.
Micronaut Management
↗
2.
Health-индикаторы
↗
3.
Micrometer в Micronaut
↗
4.
Свои метрики
↗
5.
Prometheus
↗
6.
OpenTelemetry
↗
7.
Свои спаны
↗
8.
Логи и корреляция
↗
9.
Control Panel в разработке
↗
10.
Практика: наблюдаемый конвейер
↗
Real-time: WebSocket, SSE, GraphQL
9 уроков
1.
@ServerWebSocket
↗
2.
WebSocketBroadcaster
↗
3.
WebSocket-клиент
↗
4.
Server-Sent Events
↗
5.
Безопасность real-time
↗
6.
GraphQL в Micronaut
↗
7.
Резолверы и загрузка данных
↗
8.
Масштабирование real-time
↗
9.
Практика: живая панель потребления
↗
GraalVM native image, AOT и производительность
9 уроков
1.
Почему Micronaut дружит с native image
↗
2.
Сборка native-образа
↗
3.
Reflection, resources, proxies
↗
4.
Библиотеки в native
↗
5.
Micronaut AOT
↗
6.
Инициализация во время сборки
↗
7.
Альтернативы native
↗
8.
Производительность и память
↗
9.
Практика: native ingest-под
↗
Продакшен: конфигурация, сборка, деплой, эксплуатация
10 уроков
1.
Конфигурация в проде
↗
2.
Распределённая конфигурация и обновление
↗
3.
Сборка образов
↗
4.
Kubernetes
↗
5.
Многомодульный проект
↗
6.
Serverless-профиль
↗
7.
Миграция Micronaut 4 → 5
↗
8.
Эксплуатация Meterway
↗
9.
Ошибки, которые находят в проде
↗
10.
Практика: полный запуск Meterway
↗