I am trying to build an extended CRM, using OpenSource PHP-Software. What I have for now are 3 separated systems, that all work well independent from one another. I would like to combine them. The System will have a public and a Private (Internal use only) parts. The Public part is not included in this diagram, but will be added using an API REST. The Databases that are discussed here are for Private use only.In this Image you may see a very brief overview of these 3 systems. As you can see, these Systems might share User-Tables.And if one wishes to combine these systems, to my knowledge one has 2 solutions: Extend one of these systems and integrate other 2 smaller systems in it. This will have some drawbacks - for example it wont be that easy to patch or update it. On the other hand, I will have no multiple Tables for User,User_Events...Use these systems separately but build a type of synchronization between common Tables Users,User_Orders...!. Here I am not sure how well this works, what drawbacks it might bring and what kind of synchronization I would have to build (live or using a cron).Is there an other way? Which would you recommend? 
Help to create the right architechture for an extendet opensource CRM
design;architecture
Extract the user functionality into its own service and have all three consume itieIUserService{    GetUser()}Only the user service will connect to the user database. everything else has to call the service