# HDP Jargon

This page is a glossary of terms used in the Data Processor. If you want to check out how to interact with the Data Processor, please check out the [Data Processor API](/herodotus-docs/developers/api-docs.md).

## Task

A task is a unit of processing. A task should be something **complete and unique**. It should have all the relevant data defined and also specify what computation we need to perform (either implicitly or explicitly).

* Regardless of type, a task should have three common behaviors: `encode`, `commit`, and `decode`. Because of this, we can batch both Data Lake Compute-type tasks and Module-type tasks in the same Merkle tree!
* We have two different types of tasks, and for each task type, we are providing detailed explanation pages:
  * [Data Lake](/herodotus-docs/developers/data-processor/jargon/what-is-datalake.md)
  * [Module](/herodotus-docs/developers/data-processor/jargon/what-is-module.md)
* Data Lake tasks are generally faster for processing large datasets with simple aggregation, but Module tasks allow for fully arbitrary computations to be verified as well.

## Program Registry

The Program Registry is a server that uploads compiled Cairo programs (also known as CASM files), which are needed to call a module. Check out the detailed API documentation [here](/herodotus-docs/developers/api-docs/program-registry.md).

The program hash is a unique calculation of the program bytecode. Based on the compiler version, the computation might vary slightly. You can also retrieve the exact hash via the `cairo-run` command from [cairo-lang](https://github.com/starkware-libs/cairo-lang).

Our main motivation is to have a registry of Cairo programs so that we can retrieve the compiled Cairo program using the given program hash.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.herodotus.dev/herodotus-docs/developers/data-processor/jargon.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
