Home    Reflex Repo (GitHub)    About Hiconic    Organization (GitHub)   

Reflex Platform Components

With separation of data, processing bundling and dependency management in mind the Reflex platform was designed to consist of clearly distinguished components.

  1. Models for all purpose data
  2. Modules for all purpose processing
  3. Module APIs for inter-module communication
  4. Applications for application bundling

Models

Models are a first class principle in the Reflex platform to support domain specific and generic coding. While models are meant to be used in any domain there are typical use cases in Reflex like:

Read more about modeling.

Modules

Modules are the components that contain processing code and are automatically detected and loaded by a Reflex application. The processing code of modules is typically concerned with:

In the case that modules have a general purpose for other modules they may support modules APIs for inter-module communication (e.g for dependency injection).

Modules communicate with the Reflex platform and with other modules through IOC contracts and spaces which are mediated by the wire framework.

Read more about modules.

Module APIs

Module APIs declare contract interfaces for the wire IOC framework to support inter-module communication.

On one side the contract interfaces are bound to implementing spaces by supplying modules. An example could be an expert registry.

On the other side the contract interfaces are imported by consuming modules. An example could be an expert registration.

Read more about module APIs.

Applications

A Reflex application is a zipped bundle containing libraries, configurations and launch shell scripts. The libraries include modules and models, with all their dependencies.

The application can be directly started with the launch scripts (assuming Java Runtime Environment is present).

When an application starts it automatically detects and loads all its modules.

Read more about applications.