Сегодня мы обсуждали лучшее решение, и ни одна из сторон не пришла к соглашению.
У нас есть продукт, который принимает "сообщения". Каждый раз, когда мы получаем новое сообщение, нам нужно отправить эти данные 3 службам для обработки.
Служба # 1 требует, чтобы данные были в специальном формате. для этого мы помещаем данные в SQS, из которых служба читает.
Служба # 2 считывает поля сообщения: [a, b, c], и мы отправляем в формате протофуфа.
Служба # 3 читает поля сообщений: [a, b, c, d, e], также protobuf. * 1009 *
Для сервисов № 2 и № 3 мы отправляем данные в 2 отдельных квеста SQS.
Тем не менее, мы могли бы отправлять данные в теме SNS, из которой читаются очереди №2 и №3. Для этого мы бы отправили протобуф службы № 3, так как он имеет все поля, необходимые для службы № 2.
Человек, написавший сервис №2, не хочет этого делать, потому что он не хочет получать дополнительные данные, которые они просто игнорируют.
Человек, написавший службу # 3, считает, что система затрачивает ресурсы на протобуфинг и отправку в 2 отдельные очереди SQS вместо 1 темы SNS, когда служба # 2 может просто прочитать протобуф # 3 и просто игнорировать ненужные поля.
С точки зрения архитектуры, кто прав?