Я создал конечную точку AWS Firehose (может измениться на простой Kinesis), которая получает журналы от производителей и сохраняет их в корзину S3, и лямбда-функцию, которая потребляет данные, обрабатывает их и сохраняет выходные данные в db.
Все нормально работает. Теперь я планирую создать последовательность этапов разработки и разработки для всей этой структуры. Когда я выпускаю новую версию, я не могу сразу заменить целых производителей, поэтому мне нужно сохранять старые производственные версии до тех пор, пока производитель не уйдет, потому что я могу внести критические изменения в протокол в новых версиях.
Я не уверен, что было бы наилучшим подходом к созданию версионной системы с использованием кинезиса и лямбда. Должен ли я копировать всю структуру для новых версий (включая разработку и постановку) и заставлять производителей писать в конкретный версионный поток?
или я должен создать среднюю лямбда-функцию, которая проверяет пакеты (которые содержат информацию об их версиях) и выводит события на конкретный s3, который имеет папки с версиями? Таким образом, лямбда-функции будут использовать только те данные, о которых они знают. Это позволит мне использовать поддержку версий для лямбда-функций.
Вот структурное изображение для первой идеи
Вот вторая структура
Интересно, какое решение будет лучше или есть более эффективные способы добиться этого?