Skip to main content

Engine

Engine is from the Latin ingenium, which referred to one’s ability to create things, one’s native genius; it comes from a root meaning 'create; beget'

Approach

  • An application is a set of one or more features.
  • A feature contains all the integration code required to get a subset of product functionality implemented.
  • Features may depend on other features, consume their exposed services and register into their slots.
  • A service is a set of functions exposed as an API of a feature.
  • A slot is a registry of any type, which allows pluggability via registration.
  • Environments (browser/webworker/iframe) are defined by features, and have semantic names (main/processing/preview).
  • Each slot and service is available in a specific environment.
  • Services can be marked as accessible cross-environments, which exposes them as async APIs in those environment.