L’approche mono-repo vs. multi-repo est pile un sujet sur lequel je bosse pour ma boîte.
Je rejoins ce qui s’est dit plus haut, les deux ont clairement leurs avantages et leurs inconvénients, et aucun n’est fondamentalement meilleur. Ce qui ferait la différence, si j’étais à ta place, c’est qu’en l’absence d’un tooling approprié (et qui n’existe pas à l’instant T en open source), il est très fastidieux de maintenir la cohérence et la compatibilité entre projets lorsqu’ils sont sur des repos séparés. Ça demande des systèmes d’intégration complexes, d’autant plus que la tentation est forte d’avoir des cycles de vie différents par repo (il faut alors gérer des matrices de compatibilité, et ça, clairement, c’est la merde).
Typiquement si tes deux projets partagent leur BDD, je partirais sans hésiter sur un mono-repo, pour avoir la garantie que sur un même commit, les deux projets parlent la même langue, ont le même schéma de BDD, et sont compatibles entre eux. Ça simplifie également le processus de release, les tests automatisés, l’intégration…
Certes l’historique git sera moins clean, mais si tu adoptes un minimum de rigueur sur les messages de commit (en prefixant chaque commit d’un [TAG EN MAJUSCULES]
qui décrit le composant visé, par exemple), tu t’y retrouves à l’aise.
Tout ceci doit être tempéré, toutefois, par le fait que tu n’as visiblement que 2 composants. Si tu en avais 15 ou 30, ton choix aurait des conséquences beaucoup plus grandes.