Je ne suis pas sûr que je l'ai compris ce phrasé correctement
où des modules d'affaires distincts doivent utiliser différentes bases de données
tout le temps.
Peut-être que nous parlons de choses différentes ici. Je n'ai jamais rencontré d'organisation sans au moins deux bases de données. Cela inclut moi et mon catalogue de CD et les bases de données de musique de guitare sur mon ordinateur portable.
Voulez-vous dire différents fournisseurs de bases de données? Versions de base de données, comme Oracle vX et Oracle vY? Même en vertu de cette définition, je ne peux penser à aucun client que j'ai rencontré qui ait universellement standardisé un fournisseur ou une version. Donc, est-ce que je m'attendrais à ce qu'un système non trivial ait des modules regardant une base de données et d'autres regardant une autre. Oui abolument.
Est-ce que je m'attends à ce que certains modules regardent deux bases de données, oui. Les données de référence dans un vivent dans un autre. L'histoire dans un autre.
Différents modules sur différents serveurs - oui. Pour des raisons d'isolement et d'évolutivité. C'est une chose que les serveurs d'applications font très bien.
Dans l'ensemble, pourquoi voyez-vous cela comme un problème? Vos modules recherchent leurs connexions JDBC dans JNDI, ils n'ont pas besoin de savoir qu'ils utilisent des bases de données différentes. C'est un problème d'administration de câbler les modules correctement.
Un problème majeur pourrait être l'utilisation de transactions XA, mais il est souvent possible d'éviter de mettre à jour les deux bases de données dans le même module, ou si du même module dans la même transaction.