Это зависит. К вашему сведению, я знаю Кафку, но не имею опыта в этом.
Для варианта 3 : насколько зрела ваша способность управлять различными экземплярами решения с различной конфигурацией? Сколько будет таких случаев? Как бы вы могли наблюдать за состоянием здоровья, поведением и работоспособностью всех инстанций?
Эта опция означает, что разработка менее сложна, но эксплуатационная сторона более сложна: у вас есть только одна кодовая база для тестирования, но множество различных конфигурационных перестановок для тестирования.
Для варианта 1 : будет более сложным на стороне разработки и все равно будет иметь некоторую сложность для операций. Причина этого будет зависеть от того, как решение настроено на распознавание того, какую реализацию использовать во время выполнения. Подход IOC сработал бы, но он все еще требует настройки.
Для обоих подходов вы сможете настроить экземпляр с правильной конфигурацией и протестировать его, что хорошо.
Относительно изменения системы : в идеале микросервисы должны быть легко заменяемыми. Убедитесь, что разграничение между службами является чистым, чтобы в идеале можно было заменить одну часть решения, не нарушая другую. Также должно быть легко выполнить тестирование - как тестирование службы / модуля в отдельности, так и комплексное тестирование с остальным решением - и с соответствующей конфигурацией - перед развертыванием такого изменения в производстве. Если вы чувствуете, что один подход лучше подходит для этого, чем другой, то с таким подходом я бы, вероятно, согласился.
Обновление - опция 2
Это означает наличие нескольких служб для обработки некоторых запросов (но не других), поэтому теперь вам необходимо управлять как потоком между службами (во время выполнения), так и взаимозависимостями между ними (при разработке, во время развертывания); сложнее проверить.
Микросервисы - это частично независимые сервисы - второй вариант на самом деле не соответствует этому этосу - это нормально, просто осознайте, что это не просто микросервис, в зависимости от того, насколько конкретно вы относитесь к таким вещам.