otas específicas do inquilino para módulos carregados dinamicamen

Estou usando o ASP.NET MVC para desenvolver uma estrutura de aplicativos. Essencialmente, o objetivo final é poder fazer login em uma interface administrativa, criar um novo inquilino com configurações personalizadas, habilitar os módulos que eles desejam (blog, carrinho de compras etc.) ... trabalho realizado - cliente satisfeito com o novo site. Não estou usando aplicativos separados porque haverá muito código compartilhado e seria mais fácil manter essa maneira, e também porque seria muito fácil colocar online um novo nó idêntico nos horários de pico.

Dependendo de quais módulos são carregados para o inquilino, rotas diferentes são aplicáveis para cada inquilino. A meu ver, há três opções:

Todos os inquilinos compartilham a mesma coleção de rotas - no entanto, se houver muitos módulos, ele procurará por muitas rotas que não precisa, e alguns módulos podem ter rotas conflitante

Adicione as rotas necessárias para cada inquilino à coleção de rotas global e estenda a classe de rota para examinar também o domínio - mas isso pode acabar rapidamente com centenas de rotas à medida que mais inquilinos são adicionado

Trabalhe qual inquilino está sendo acessado primeiro e depois pesquise apenas sua própria coleção de rotas particular - isso seria o ideal, mas pesquisei por horas e não tenho absolutamente nenhuma idéia de como fazê-lo!

Alguém pode me indicar a direção correta para a terceira opção ou explicar por que um dos dois primeiros não é tão ruim assi

questionAnswers(1)

yourAnswerToTheQuestion