layout |
---|
default |
The platform is splitted into micro-services, each one providing a specific function.
{% include mermaid_schemas/main_architecture.html %}
The core component is the backend, which provides user management, workflow engine and monitoring.
The backend component manages workflows structured like that:
- Workflow: a description including a list of steps
- Step: static declaration of a process
- Job: instance of a step, many jobs can be generated at the runtime for 1 step (1 per file for example)
- Step: static declaration of a process
classDef blue fill:#155799,stroke: none,color: #fff; classDef green fill:#159957,stroke: none,color: #fff;
class wf green class step green class job blue
Complete workflow documentation of the schema is described here.
A communication standard is required to match messages between backend and workers. To ensure the quality of integration, it is recommended to use everywhere rs_amqp_worker which provides a worker SDK.
All details about communication between the backend and workers is detailed here.
The entire project is currently deployed using Kubernetes{:target="_blank"}.
Every part of the platform is built into Docker images and can be deployed easily with the startup{:target="_blank"} project.
The frontend is designed using Angular.io{:target="_blank"}
{:refdef: class="language"}
{: refdef}
The backend uses the power of Elixir{:target="_blank"}, based on Erlang{:target="_blank"} to provide a resilient and efficient backend. {:refdef: class="language"} {: refdef}
Most of workers are using Rust{:target="_blank"}, high-typed language with performances similar to C/C++ applications. {:refdef: class="language"} {: refdef}
Some other workers can use C/C++ using the c_amqp_worker project