A questão gira em torno mais da maneira como você obtém uma conexão a partir de algum identificador único do tenant do que da origem dessa informação (no caso, a requisição HTTP) propriamente dita. Trabalho hoje com um sistema multi tenant e dado o acoplamento do código legado (objeto request sendo um god object), tive que escrever uma nova base de código para os jobs, usando clean arch e padrões de projeto, nenhum framework. A ideia é construir uma lib desacoplada na nova base e incorporá-la à base antiga de maneira progressiva, o que é possível por serem bases TypeScript, de modo a extinguir o god object aos poucos. Ainda que isso nunca aconteça, a nova base já atende os novos executáveis da aplicação. Então, já há o benefício. No meu caso, o alto acoplamento justifica a reescrita. Tens que avaliar se é o mesmo caso com você.
Em resposta a Multi tenancy com bancos de dados separados por cliente
1