Consumer vs Producer module

  1. The module that implements and exposes functionality is the producer module. When you expose functionality to other modules of the environment, your module is the producer module.
  2. On the other hand, the module that reuses the exposed functionality is the consumer module. When you reuse functionality from other modules of the environment, your module is the consumer module.

Core module naming conventions

  1. _CS
    • Reusable Core Service
    • with
      • public entities
      • actions
      • web blocks
  2. _BL, _CW :
    • Isolated Business Logic (Actions)
    • or Core Widgets (Web blocks),
    • to manage complexity, composition or
    • to have its own lifecycle
  3. _Eng:
    • A BL becomes a Calculation Engine if it performs complex calculations, (e.g. an invoice calculation engine or an insurance simulator).
    • Engines are usually subject to versions
  4. _Sync:
    • Logic to Synchronize data in CSs with an external system.
    • Isolating this logic makes the CS completely system agnostic and
    • it’s easier to decouple or replace the external system.
  5. _API:
    • Technical wrapper to expose an API to External consumers
    • keeping core services system agnostic and
    • supporting multiple versions of the API
  6. Add a “M” for a Mobile only module, like _MCS, _MBL or _MCW