Ответ
Да, в проекте использовался Spring Cloud Data Flow (SCDF) для оркестрации потоков обработки данных между микросервисами.
Роль SCDF: Декларативное создание и управление конвейерами (pipelines) вида Source -> Processor -> Sink, где каждый компонент — это отдельный Spring Boot-сервис.
Пример определения простого потока (DSL):
// Определение потока: читаем из очереди, обрабатываем, пишем в БД
http | transform --expression=payload.toUpperCase() | jdbc
Ключевые преимущества, которые мы использовали:
- Гибкость: Быстрое создание и изменение сложных пайплайнов через DSL или UI.
- Масштабируемость: Интеграция с Kubernetes для автоматического масштабирования отдельных этапов.
- Мониторинг: Встроенная интеграция с Prometheus и Grafana для отслеживания метрик.
Сложности: Для нестандартных сценариев обработки ошибок и гарантированной доставки сообщений требовалась разработка кастомных процессоров и настройка retry-логики.