Представьте себе систему обработки, которая получает данные от других внутренних систем или от конечных точек REST, доступных через Интернет. После получения набор (фоновых) задач (вычисление ответа на основе входных данных на основе базы данных или других веб-сервисов) работает с данными параллельно, некоторые последовательные один за другим или некоторые задачи при выполнении нескольких параллельных задач. Конечная (пограничная) задача может отправить результат на внешний веб-сервис или поместить в таблицу базы данных.
Задачи могут быть спроектированы как простые службы, которые обрабатывают сообщения из message-queues
, доставленные ему другими такими службами. и отправьте результат в другую очередь для дальнейшей обработки. Вместо очереди система может использовать потоки для обработки. Я считаю, что этот подход (сервисы записи, связанные с брокером сообщений) должен повторять обработку их сценариев сбоев, масштабирования и пропускной способности.
Существуют ли какие-либо конкретные структуры (такие как Flink или Samza или Storm или Airflow или Siddhi или Hazelcast Jet)реализовывать такие задачи и развертывать их в кластере, который заботится о масштабировании и обработке сбоев, вместо того, чтобы реализовывать каждую задачу как подробные сервисы (например, весной) и масштабировать их независимо.