Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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, lack of transaction, cannot do joins?
    Given Mifos is still seen as one application by its users, creating separate database would be an overkill.
  • What the extent of vertical slicing of modules? (i.e. does it include the presentation, action)
    There are two ways to go about it.
    1. A functional module consists of service, domain, DTO and hibernate mapping. In this approach entire presentation layer action/workflow/UI-objects/ftl would be part of one maven module.
    2. A functional module also consists of its own presentation code. (Questionaire module is built like this). The presentation code which delivers data from one or more module need to be handled in common presentation or something
  1. Which layers in a module are accessible to another module at the compile time?
  2. Entities in one module would logically refer to entities in another module. Should these relationships be modeled at the entity level, as well? If not then how would the relationships be created?
  3. Which module would host the page when data displayed is from two functional modules?
  4. 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?
  5. 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?
  6. When entities are updated in different modules, would transaction be taken care of? Would it be the case when we use OSGI?
  7. If there is a requirement which involves joining data across different modules. How would we resolve such issues? Where should this code lie? How would we do this using HQL?
  8. Each module potentially has some reference data in it. ReferenceData is something which doesn't change very often. If and when we need it, what should be the caching strategy for reference data?
  9. Should each module have their own session factory?
  10. Should each module have their own session?

...