Сервис для управления бронированием авиаперелётов.
Проект реализует один из микросервисов backend-системы для создания и управления бронированиями авиабилетов. Поддерживает асинхронную обработку событий через Kafka и хранение данных в PostgreSQL
Архитектура основана на подходе event-driven и outbox pattern для надёжной доставки событий
Остальные микры:
- Создание и управление бронированиями
- Публикация событий в Kafka
- Outbox pattern для гарантированной доставки событий
- Асинхронная обработка сообщений
- Интеграционные тесты с Testcontainers
- Outbox pattern для надёжной доставки событий в Kafka
- Асинхронная обработка событий
- Event-Driven architecture
- SAGA (Choreography)
- DLQ (Dead Letter Queue)
- Микросервис цен на бронирования
-
BookingService
-> создаёт booking (PENDING)
-> публикует booking.created -
PaymentService
<- получает booking.created
-> пытается провести оплату -
PaymentService
-> если успех -> payment.completed
-> если ошибка -> payment.failed -
BookingService
<- получает payment.completed / payment.failed
-> меняет статус booking
- Поднять инфраструктуру:
docker-compose up -d- Запустить приложение:
./mvnw spring-boot:runОсновные настройки задаются в application.yml:
- Kafka bootstrap servers
- Database connection
- Liquibase migrations
- Spring profiles
Запуск тестов:
./mvnw testИспользуются интеграционные тесты с Testcontainers (Kafka, PostgreSQL)