I have been reading many architectures such as N-Layered, Onion ,... . But I'm designing a large system that is working by some huge databases and provides a lots of services to another applications/clients.
On the other hand our system have to be designed very extensible. the parts of our system that named modules or subsystems, have own models,Business logic and maybe own UIs or services. Even some modules don't have any UI nor any services to serving out of systems, these modules just extends our system.
I'm a member of designer team and I'm thinking about the below architecture for our system:
It is an onion architecture, but the entities of database will be defined in each module. Each module will be developed by a separate team. We don't have dependency between them, but our database is same!
My concerns are below:
- How can they dependent each other?
- Is this right architecture for us?
- If yes, what are the other concerns?
- If no, what architecture(s) you suggest?