Многопользовательская реализация означает, что вы вступаете в многомерный мир. ИМО, очень сложно дать рецепт для мультитенантного приложения, не зная природу бизнеса и его факторы.
Один важный пункт, на который я посмотрю, - это нагрузка , которую собирается каждый арендатор. ввести в приложение. Как правило, вы хотите, чтобы арендаторы с аналогичной нагрузкой разделяли ресурсы. Если у одного нагрузка в 100 раз больше, чем у других, то опыт будет невелик.
В то же время вы хотите иметь возможность сделать небольшой шаг и не можете позволить себе реализацию, основанную на 10 тыс. Арендаторов, и служить только для 100. Однако вы также не хотите выбрасывать свое приложение и писать с нуля, когда количество ваших арендаторов вырастет до 10 тысяч.
Как видите, это не простое решение.
Я всегда думал о своем следующем шаге, когда проектировал для своей текущей потребности. Важно, чтобы ваш дизайн был гибким и расширяемым, по крайней мере, для следующей фазы вашего бизнеса, которую вы видите.
В вашем случае кажется, что вы видите следующий шаг (несколько виртуальных хостов - в основном выделенные ресурсы для арендаторов) но вы знаете, что вам это не нужно на данный момент.
Я предлагаю вам спроектировать на основе нескольких виртуальных хостов, но реализовать на основе одного хоста. Таким образом, если в итоге окажется, что нагрузка одного арендатора убивает других, то по крайней мере вы можете отделить этого арендатора с относительно меньшими усилиями.