---
title: "Sitecore Cortex Processing Engine"
slug: "sitecore-cortex-processing-engine"
abstract: "Overview of the Sitecore Cortex™ Processing Engine (Processing Engine), which is a worker role that performs data processing tasks."
---
# Sitecore Cortex Processing Engine

The Sitecore Cortex™ Processing Engine (Processing Engine) is a worker role that performs data processing tasks. Reasons to use the Processing Engine include:

- The Processing Engine is built for scale.
- The Processing Engine allows you to build complex processing jobs by chaining smaller tasks.
- The Processing Engine allows you to schedule tasks from a Content Management instance using the Task Manager API, which integrates with the Message Bus.

The Processing Engine is made up of the following key components:

- Message handlers receive tasks registered via the Task Manager API.
- Agents delegate tasks to workers.
- Workers perform data processing tasks, such as data projection or model training.

<details>
<summary><h2>Working with the Processing Engine</h2></summary>

Use the Task Manager API to register tasks to be handled by the Processing Engine.

- Register a task to project data from xConnect into storage

</details>

<details>
<summary><h2>Extending the engine</h2></summary>

As a developer, you can extend the Processing Engine in the following ways:

- Create a custom worker.
- Create a custom data source that can be used by the projection worker. 
- Create a custom data projection.
- Implement custom model training and model evaluation logic.
- Create a custom agents

</details>

<details>
<summary><h2>Default functionality</h2></summary>

The Processing Engine role is responsible for the following processing tasks:

- Build personalization rules and publish to the reporting database.

The Processing Engine ships with [several default workers](https://doc.sitecore.com/xp/en/developers/105/sitecore-experience-platform/default-workers.html "Default workers") that can be chained together to perform data processing tasks.

### The role of legacy xDB Processing

The Legacy xDB Processing role is still responsible for the following processing tasks:

- Aggregation of Experience Analytics data into the xDB Reporting database.

</details>

<details>
<summary><h2>The Processing Engine and machine learning</h2></summary>

The Processing Engine provides an integration point for your machine learning platform of choice. No default integrations exist.

Inject `IScriptSessionFactory` into a [model wrapper](https://doc.sitecore.com/xp/en/developers/105/sitecore-experience-platform/model-wrappers.html "Model wrappers") to use the Microsoft Machine Learning Server integration.

</details>