If you go for a microservices architecture in your organization, they can share configuration via zookeeper or its equivalent. However, how should the various services share a common db schema? common constants? and common utilities?
One way would be to place all the microservices in the same code repository, but that would contradict the decoupling that comes with microservices...
Another way would be to have each microservice be completely independent, however that would cause code duplication and data duplication in the separate databases each microservice would have to hold.
Yet another way would be to implement functional microservices with no context\state, but that's usually not realistic and would push the architecture to having a central hub that maintains the context\state and a lot of traffic from\to it.
What would be a scalable, efficient practical and hopefully beautiful way to share code and schema between microservices?