Me and my team are working on an ERP system have many modules ( HR , Accounting , etc )
The problem we are facing that there are some shared entities between 2 modules (HR , Accounting ) like employees
Employees in HR system have a lot of details like :
Personal Information , Visa Info , Report To , Sources , Training , Etc
Employees in Accounting have few Information
Personal Information , Bank Account , Employee Account (That's it )
1)Suppose each module will work as a standalone version ( this completed )
2)Suppose the 2 modules will work together so that mean the Employees will be reflected in both modules even they have different flow in each system
What i need when i define a new employee in HR module to let the Accounting module feel that change and what ever operation happen in both modules they have to be dealing with the same entity ??
Put in consideration that this employee is related to other entities like the company he is related to and this company entity is different in the both modules (For example it have a lot of detail in HR module but in Accounting only company have some branches under it )
Note: Each Module have separate Database (Didn't want to enlarge the database in standalone version )
What is the right way to develop both modules to work together ?? or as standalone ???
Is it too late and we should design it from the beginning as shared entities ?
And if i used the shared entities that mean i should make shared business logic and data access layer ?
I try to google a lot about this but kind of information like this will come only from real implementation and life experience
Technologies: Asp.net + Mysql
Thanks in advance