События Argo и датчик AWS S3
Обзор
У меня есть кластер Kubernetes с установленными поверх него рабочими процессами Argo, а также несколько устаревших систем, работающих на некоторых машинах EC2.
В будущем я перенесу все устаревшие задания ETL на рабочие процессы Argo, но пока мне нужно заставить эти системы взаимодействовать друг с другом.
Для этого я пишу некоторые файлы в ведре S3, эти файлы должны обнаруживаться датчиком, который запускает рабочий процесс, и я использую:
S3 bucket notification > SNS > SQS
на стороне AWS, чтобы собрать все мои сообщения S3.
Затем, по окончании событий Argo, у меня есть датчик SQS, который запускает рабочий процесс, если условие выполняется (если ключ ведра A, запускает рабочий процесс A, иначе, если ключ ведра B, запускает рабочий процесс B и т. Д.).
Проблема
Одним из ограничений этого подхода является то, что SQS доставляет сообщения только один раз. Поскольку одним из требований является то, что задания ETL находятся в независимых репозиториях, поддержка «централизованного» датчика не будет вариантом.
Альтернативный подход мог бы быть
S3 bucket notification > SNS > Lambda > Kafka
а затем использовать датчик Кафки.
Мне просто было интересно, не будет ли это излишним для того, чего я пытаюсь достичь. Если да, то какие у меня есть альтернативы?