Event Condition Action
ECA - New rules engine for Drupal 9+
Jürgen Haas and Richard Papp
29 October 2021
About us

Agenda
- Introduction
- Demo
- ECA Architecture
- Modeller
- Roadmap
- Discussion
Introduction
The Rules module for Drupal 8 is still in its alpha release stage … still needs significant work. (Excerpt description tr_rulez)
Rules D8+

Previously

ECA Architecture
- ECA is a processor - Period. No more, no less
- An event subscriber listens to all Drupal events and triggers the processor
- This processes all available ECA models - all models for the current event
- The ECA models are config entities
Where does the config come from?
ECA doesn’t care!
What components does the processor support?
- Events: all Drupal events - you can add custom events
- Conditions: ECA provides a plugin manager
- Actions: all Drupal actions - you can add custom events
What is already included in ECA?
- ECA Core:
- Processor for ECA config entities with all contained rules
- Plugin managers for modellers, events, conditions, actions
- Interfaces and abstract base classes and traits
- Token support
- Integration of all Drupal actions from Drupal core actions module
8 Submodules
- with dozens of events, conditions and actions:
- ECA Base: cron, custom, state, etc.
- ECA Config
- ECA Content
- ECA Form
- ECA Migrate
- ECA Misc: kernel, Drupal core, routing, etc.
- ECA User
- ECA Workflow
Chainable Actions
class_alias('Drupal\eca_content\Plugin\Action\FieldUpdateActionBase', 'Drupal\Core\Field\FieldUpdateActionBase');
Structure: Events

Structure: Conditions

Structure: Actions

Modeller
- A modeller is the user interface for ECA config entities.
- It can be integrated as a @EcaModeller plugin, that stores models as config entities. The plugin manager is provided by the ECA module.
- May be BPMN but not necessarily. Only the structure Event - Condition - Action matters.
- Two modellers are already integrated:
Structure: Modeller

Roadmap
Beta-1 on 3rd November 2021
Stable Release 1.0.0 by the end of 2021
Any help is highly appreciated
- Development
- ECA and plugins
- Optimization of the integrated BPMN.iO clients
- Tests
- Review and feedback
- Support (Issue queue and in chats)
- Documentation
- Translations
- Descriptions on the drupal.org project pages
- Spread the word