# Architecture of Autom Mate

Autom Mate's architecture is built on an Automation and Integration platform, designed to automate and streamline business processes effectively. This robust architecture consists of two primary components:

1. **Autom Center**&#x20;
2. **Mate Agent**

## **Autom Center**

Autom Center is designed to be user-friendly and accessible to both technical users and citizen developers (non-technical users). **It includes the following key modules:**

{% tabs %}
{% tab title="Autom" %}
[**Autom:** ](https://docs.autommate.com/userguide/information/what-is-autom)This is **a visual tool that allows users to design automation workflows** using [**a drag-and-drop interface**](https://docs.autommate.com/userguide/features-of-autom-mate#drag-and-drop-autom-designer). Users can **create and visualize** workflows by arranging [**pre-defined actions**](https://docs.autommate.com/userguide/libraries) (such as sending an [**email**](https://docs.autommate.com/userguide/libraries/integration/email), updating a [**database**](https://docs.autommate.com/userguide/libraries/integration/database), or calling an [**API**](https://docs.autommate.com/userguide/libraries/integration/restful-web-service)) and connecting them to define the sequence of operations. This approach simplifies the creation of complex automation processes without requiring extensive coding knowledge.
{% endtab %}

{% tab title="Monitoring Modules" %}
[**Monitoring Modules:**](https://docs.autommate.com/userguide/product-features/dashboard/monitoring) These tools **enable users to track the execution of Autom in real-time**. Users **can view the status of each action**, [**monitor** ](https://docs.autommate.com/userguide/product-features/dashboard/monitoring)performance metrics, and identify any issues that may arise during execution. [Monitoring ](https://docs.autommate.com/userguide/product-features/dashboard/monitoring)**modules provide insights into the success or failure of Autom, allowing users to make necessary adjustments for optimization.**
{% endtab %}

{% tab title="User & Role Management" %}
[**User & Role Management:** ](https://docs.autommate.com/userguide/product-features/management/user-management)**This module manages user accounts**. It ensures that only authorized users have access to specific functionalities and data within the platform.&#x20;
{% endtab %}

{% tab title="Autom Store" %}
[**Market Place (Autom Store):** ](https://docs.autommate.com/userguide/product-features/store/autom-store)A [**marketplace** ](https://docs.autommate.com/userguide/product-features/store/autom-store)where **users can browse, purchase, and download additional automation templates, actions, and modules.** This expands **the capabilities of Autom Mate by providing ready-made solutions for common automation needs.** Users can leverage these templates to quickly implement automation without starting from scratch.
{% endtab %}

{% tab title="Management Module" %}
[**Management Modules:** ](https://docs.autommate.com/userguide/product-features/management)These tools **allow administrators to configure settings, manage system operations, and maintain the overall system.** This includes tasks such as **system monitoring, performance tuning, and security management.**
{% endtab %}
{% endtabs %}

***

## **Mate Agent**

[The Mate Agent ](https://docs.autommate.com/userguide/product-features/my-environment/mate-agent)is a critical component of Autom Mate, **operating on the server side**. It consists of a **microservice infrastructure that includes:**

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><h3><strong>Gateway</strong></h3><p>The gateway <strong>acts as the central communication hub, routing data and requests between different microservices</strong>. It ensures that each request is directed to the appropriate microservice for processing, facilitating smooth and efficient operations.</p></td><td></td><td></td></tr><tr><td></td><td><h3><strong>Library Microservices</strong></h3><p>These are specialized services that handle <strong>specific automation tasks</strong>, <strong>such as data processing</strong>, <strong>system integration</strong>, and <strong>action execution</strong>. Each microservice is <strong>developed</strong>, <strong>deployed</strong>, and <strong>maintained independently</strong>, allowing for <strong>easier updates and scalability.</strong> The microservices architecture ensures that <strong>the system can handle a large number of tasks simultaneously without performance degradation.</strong></p></td><td></td></tr></tbody></table>

***

## Deployment Types of Autom Mate

Autom Mate provides flexibility in deployment by offering three deployment types: **Cloud**, **Hybrid**, and **On-Premises**. Each type is tailored to meet different infrastructure and operational requirements.

### Cloud Deployment

The **Cloud Deployment** leverages the robust infrastructure of **Amazon Web Services (AWS)**.

* In this model, both **Autom Center** and **Mate Agent** are fully hosted and managed in AWS.
* This option is ideal for users seeking a fully cloud-based solution that eliminates the need for maintaining local infrastructure.
* The architecture ensures high availability, scalability, and secure access via AWS services.

Architecture of the Cloud Deployment.

<figure><img src="https://4222414448-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMAf5diEa8kgXDA6h47Cu%2Fuploads%2FuebGi2GoWf6TJ62WDm9I%2FOnCloud.jpg?alt=media&#x26;token=b66e5925-ff30-40b1-b8ce-3008bc0df970" alt=""><figcaption><p>Cloud Architecture</p></figcaption></figure>

### Hybrid Deployment

The **Hybrid Deployment** combines the benefits of cloud and on-premises environments:

* **Autom Center** is hosted on **AWS**, ensuring centralized management, security, and cloud-based scalability.
* **Mate Agent**, however, is installed locally on the user's **Local Server** or in the user's own **cloud environment**.
* This approach is ideal for organizations that require local processing for specific tasks or need to comply with data sovereignty or privacy regulations while benefiting from cloud-based management.

Architecture of the Hybrid Deployment.

<figure><img src="https://4222414448-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMAf5diEa8kgXDA6h47Cu%2Fuploads%2FbwBBE3vewU0I6o3gTorf%2FOnHybrid.jpg?alt=media&#x26;token=30f0b50e-5b41-4a02-863b-d34c258c9024" alt=""><figcaption><p>Hybrid Architecture</p></figcaption></figure>

### On-premises Deployment

The **On-Premises Deployment** provides the highest level of control for end-users who prefer to manage everything within their own infrastructure:

* Both **Autom Center** and **Mate Agent** are installed on the end-user's **Local Server** or private **cloud environment**.
* To enable logging functionality, the end-user must also install **Elasticsearch** within their environment.
* This implementation is best suited for organizations with strict compliance, security, or operational requirements that demand full control over their data and systems.

Architecture of the on-premises deployment.

<figure><img src="https://4222414448-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMAf5diEa8kgXDA6h47Cu%2Fuploads%2F8t7yHiogDNiFEbqNf0ns%2FOnPremise.jpg?alt=media&#x26;token=81f2d6e4-65e5-4a32-b927-8cc6ef939a43" alt=""><figcaption><p>On-premises Architecture</p></figcaption></figure>

## **How It Works**

{% stepper %}
{% step %}
**User Interaction**

* A user [**triggers** ](https://docs.autommate.com/userguide/autom-features/triggers)an [Autom ](https://docs.autommate.com/userguide/information/what-is-autom)from the Autom Center's user interface (UI). This can be done through a simple click or based on a predefined schedule or event.
* The Autom information, which **includes details about the actions to be performed** and **the sequence of operations**, is sent to the backend operation via a **REST API call**.
  {% endstep %}

{% step %}
**Backend Processing**

* Autom Center's **backend operation receives the request** **and completes the preprocessing phase.** This phase **involves preparing the data and ensuring it is in the correct format for further processing** by the [**Mate Agent**](https://docs.autommate.com/userguide/product-features/my-environment/mate-agent).
* The backend handles **initial validations**, **data transformations**, and **any necessary preliminary steps to set up the Autom** for execution.
  {% endstep %}

{% step %}
**Data Transfer**

The prepared data is transferred to the **gateway using gRPC (gRPC Remote Procedure Calls)**, **a high-performance**, **open-source framework for communication**. **gRPC** ensures **efficient** and **secure data transfer** between the **backend** and the [**Mate Agent.**](https://docs.autommate.com/userguide/product-features/my-environment/mate-agent)
{% endstep %}

{% step %}
**Autom Distribution**

* The gateway **distributes Autom actions** to the appropriate [library ](https://docs.autommate.com/userguide/libraries)**microservices** for execution. Each microservice processes its assigned task and returns the results to the gateway. This communication is also managed using **gRPC**, ensuring reliability and speed.
* The microservices handle tasks such as interacting with external systems, processing data, and performing specific automation actions as defined in the Autom.
  {% endstep %}

{% step %}
**Real-Time Monitoring**

* Users can [monitor ](https://docs.autommate.com/userguide/product-features/dashboard/monitoring)the progress of their Autom in real-time from the monitoring page in Autom Center. This feature provides **updates** and **insights into the status and performance of each task** within the Autom.
* **Real-time monitoring allows users to track the execution of Autom, view logs, and receive alerts for any errors or issues.** This ensures that users are always informed about the state of their automation processes and can take corrective actions if needed.
  {% endstep %}
  {% endstepper %}

{% hint style="danger" %}

### Warnings

* **REST API Call Limit**: Be mindful of API rate limits or restrictions, as frequent Autom triggers may impact backend processing speed.
* **Data Format Requirements**: Ensure data sent for backend processing meets the required format; incompatible formats can lead to errors or delays.
  {% endhint %}

{% hint style="info" %}

### Hints

* **Real-Time Monitoring**: Regularly check the monitoring page to track Autom progress and quickly identify any issues.
* **Automation Distribution**: Each library microservice handles specific tasks, so monitoring individual task statuses can help pinpoint performance bottlenecks.
* **Error Management**: Set alerts for key Autom's to catch potential errors early and ensure automation runs smoothly.
  {% endhint %}
