Skip to content

Commit 951093c

Browse files
authored
docs: Add architecture overview
1 parent bb28d8c commit 951093c

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

CONTRIBUTING.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,29 @@ Example: Add the nullish coalescing operator `null ?? "default"`
146146
* Open a pull request and link to the FEEL issue
147147
* Then, add the new operator to the documentation in the [Camunda docs](https://docs.camunda.io/docs/next/components/modeler/feel/language-guide/feel-boolean-expressions/)
148148

149+
## Architecture overview
150+
151+
The following diagram shows an overview of the different components within the FEEL engine:
152+
153+
```mermaid
154+
graph TD;
155+
FeelEngineBuilder --> |build| FeelEngineApi;
156+
FeelEngineApi --> |use| FeelEngine;
157+
FeelEngine --> |parse| FeelParser;
158+
FeelParser --> |build| Exp;
159+
FeelEngine --> |interpret| FeelInterpreter;
160+
FeelInterpreter --> |create| Val;
161+
FeelInterpreter --> |use| BuiltinFunctions;
162+
click FeelEngineBuilder "https://github.com/camunda/feel-scala/blob/main/src/main/scala/org/camunda/feel/api/FeelEngineBuilder.scala" _blank;
163+
click FeelEngineApi "https://github.com/camunda/feel-scala/blob/main/src/main/scala/org/camunda/feel/api/FeelEngineApi.scala" _blank;
164+
click FeelEngine "https://github.com/camunda/feel-scala/blob/main/src/main/scala/org/camunda/feel/FeelEngine.scala" _blank;
165+
click FeelParser "https://github.com/camunda/feel-scala/blob/main/src/main/scala/org/camunda/feel/impl/parser/FeelParser.scala" _blank;
166+
click Exp "https://github.com/camunda/feel-scala/blob/main/src/main/scala/org/camunda/feel/syntaxtree/Exp.scala" _blank;
167+
click FeelInterpreter "https://github.com/camunda/feel-scala/blob/main/src/main/scala/org/camunda/feel/impl/interpreter/FeelInterpreter.scala" _blank;
168+
click Val "https://github.com/camunda/feel-scala/blob/main/src/main/scala/org/camunda/feel/syntaxtree/Val.scala" _blank;
169+
click BuiltinFunctions "https://github.com/camunda/feel-scala/blob/main/src/main/scala/org/camunda/feel/impl/interpreter/BuiltinFunctions.scala" _blank;
170+
```
171+
149172
## Public API and backward compatibility
150173

151174
The FEEL engine is integrated into Camunda 7 and Camunda 8. It's important to keep the public API stable and stay backward compatible to avoid breaking the integration in Camunda 7/8 or the userspace (i.e. the application that uses FEEL expressions).

0 commit comments

Comments
 (0)