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 4 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.
  • need not necessarily have its own database schema.

Cross functional modules...

  • can be used as libraries by other modules.

Questions

A functional module's service/domain-layer wants to read the data owned by another functional module.
The modules are designed to provide encapsulation over the data they own. This means that we should first try out tell-dont-ask approach. At the module level the callee should ask why you want this data. If the callee can satisfy the requirements then the caller should provide the data and callee can respond with the result. This approach might not result in anything new but should be explored.
In any case the services across modules should talk to each other using contract object and not domain objects. This is to decouple module's internal implementation from its usage.
A functional module's service/domain-layer wants to read the data owned by another functional module?

How does a page work which displays data from two functional modules?

Who coordinates across modules from user interface point of view.

Who keeps the id.

Notify of event than tell what to do.

Should domain layer know about the its own service layer or other service layers

  • No labels