> For the complete documentation index, see [llms.txt](https://docs.caraml.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caraml.dev/user-guides/router/create-a-router/configure-enricher.md).

# Configure enricher

{% hint style="info" %}
This step is **optional** and the default behaviour will send the original request to the configured routes.
{% endhint %}

The Turing enricher has the ability to perform arbitrary transformations on the incoming request for feature enrichment. It can deploy any enricher image (implemented by a user) and integrate it with the rest of the system. Currently, there are 3 options available - no enricher, Docker and an external enricher that is coming soon.

### No Enricher

Original request will be sent to configured routes without enrichment.

### Docker

Turing will deploy specified Docker image as a pre-processor and will send original request to it for enrichment.

The request to the enricher is constructed from the request headers to the Router, and an identifier `Turing-Req-Id` that is uniquely assigned to each request received by the Router.

To configure a Docker enricher, there are 3 sections to fill.

Configure the Docker Container. There are 4 required inputs.

![](https://2689420226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFMRO0BquZrbmgj6RBGJL%2Fuploads%2Fgit-blob-e0bf1e452ad746360f799d73ae7d41cf704db40a%2Fdocker_container_config.png?alt=media)

**Docker Image**: The image is formed of 2 parts. Select the registry to where your image is stored. Following that, enter the name of the image.

**Endpoint**: Relative URL endpoint of the enricher.

**Port**: Port number exposed by your container.

**Timeout**: Request timeout, which when exceeded, the request to enricher will be terminated

**Service Account**: You can **optionally** mount a service account for your Docker deployment.

![](https://2689420226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFMRO0BquZrbmgj6RBGJL%2Fuploads%2Fgit-blob-b7ff8f9eda6944ebb9338acd93f86d2564c58cab%2Fservice_acc_dropdown.png?alt=media)

Configure any environment variables required by the Docker container. You need to input the name and corresponding value of each input.

![](https://2689420226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFMRO0BquZrbmgj6RBGJL%2Fuploads%2Fgit-blob-e2260279381741eb0f45b8bbd01168336d44f2e5%2Fenv_var_panel.png?alt=media)

Configure the resources required for the enricher. There are 3 required inputs, with default values provided for each.

![](https://2689420226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFMRO0BquZrbmgj6RBGJL%2Fuploads%2Fgit-blob-14f923f4141a7b020e5dedfc0d2bf0f870fb40be%2Fresources_panel.png?alt=media)

**CPU**: Total amount of CPU available for your enricher.

**Memory**: Total amount of RAM available for your enricher.

**Min/Max Replicas**: Min/max number of replicas for your enricher. Scaling of the enricher based on traffic volume will be automatically done for you.

**CPU Limit**: By default, Turing determines the CPU limits of all deployed components using platform-level configured values. These CPU limits is calculated as a factor of the user-defined CPU request value for each component (e.g. 2x of the CPU request value). However, you can override this platform-level configured value by setting this value explicitly on the UI (as seen above) or via the SDK.

Optionally, modify the autoscaling policy on the enricher.

![](https://2689420226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFMRO0BquZrbmgj6RBGJL%2Fuploads%2Fgit-blob-5501cf8b1dbf0739674da64279955b6c00525a27%2Fautoscaling_policy_panel.png?alt=media)

**Metric**: The autoscaling metric to monitor. Currently, 4 metrics are supported - Concurrency, RPS, CPU and Memory.

**Target**: The target value of the chosen metric for each replica, after which autoscaling should be triggered.

### External Enricher

Coming soon.
