Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Monolithic systems have the problem of coupling. Cognizant of this fact, we want to move to a modular system.

What is a Mifos module?

Mifos modules should be carved out based on functional cohesion. There can be a two kinds of modules functional and cross-functional. (For list of modules please check here.)

All modules ...

  • would be identifiable in the source code as a maven module.

Functional modules...

  • would encapsulate the data and behavior for a part of the system.
  • is responsible for its presentation. The code (markup and others) which provide the presentation for the module would owned by this module.

Cross functional modules...

  • can be used as libraries by other modules.

Questions (provides a list of issues)

Should module be decoupled from each other to the extent that they can possibly have their own database? Implications: no foreign key relationship, possible independent hosting and deployment.
Which layers in a module are accessible to another module at the compile time?
Entities in one module would refer to entities in another module. In such a case should there be hibernate based relationship between entities?
Which module hosts the page which displays data from two functional modules?
In case of One-to-One/One-to-Many/Many-to-One (logical) relationships between entities how to decide who refers to whom? How to avoid cyclic relationships between modules?
If there is no domain relationship between entities in different modules. A parent entity (in module A) has child entity (in module B), when the child entity is created, how does parent entity get the id for it?
Guidelines
A functional module's service/domain-layer wants to read the data owned by another functional module.

  • No labels