Es gibt keine Regel über Microservices, dass Code nicht wiederverwendet werden sollte. In der Tat, dass DRY im Allgemeinen mit Microservices falsch ist, ist gefährlich. Eher sollten Sie die folgenden Fragen stellen: Will the shared code be a separate module with a dedicated purpose that rectifies a separately managed lifecycle and releases?
Wenn ja, sollten Sie auf jeden Fall für die Wiederverwendung als separat freigegebenes Modul gehen - Ähnlich wie Sie eine Bibliothek von Drittanbietern wiederverwenden würden. Dies stellt sicher, dass Sie keine starke Kopplung zwischen dem geteilten Code und Ihren Microservices haben, da jedes Microservice-Team selbst entscheiden kann, ob es bei einer bestimmten Release-Version des Moduls bleiben oder auf eine neuere Version upgraden möchte. Was Sie vermeiden möchten, ist eine Abhängigkeit, die Sie zwingt, Ihre Microservices zu ändern, wenn sich die wiederverwendete Bibliothek ändert (vermeiden Sie den Ripple-Effekt).
Noch eine Sache - Weil Sie erwähnen, dass es DB-bezogene Schemas ist, müssen Sie eine andere Frage stellen: Will the schemas being reused in separate DBs or will they refer to the same physical DB in the end?
. Wenn sie am Ende eine gemeinsam genutzte Datenbank verwenden, verbinden Sie effektiv die beiden Microservices und sollten daher wahrscheinlich als Teil desselben Services betrachtet werden, anstatt als separate Services.
Ich denke, das ist so viel wie ich sagen kann, ohne mehr über Ihre Dienste und Ziele zu wissen.