# What is a contract

Contracts are the core of our methodology, the Contract-Oriented Architecture (COA<sup>®</sup>), which organizes Data Integration processes in **phases**, simplifying the design and management of integrations in data **input**, **mediation** and **output**.

A contract defines how the producer and the consumer of data, as well as Data Mover, interact.

Different types of contracts can be associated with each phase of the COA. This is a schema visualizing the **phases and contracts** in Data Mover.&#x20;

<figure><img src="https://3170459594-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FptDwkwGfIbMhLdRlTAmx%2Fuploads%2FPN4vX13Bvjyh7xDlITTg%2Fimage.png?alt=media&#x26;token=e292f052-e49c-4bbc-8d23-001c46ed5150" alt="" width="563"><figcaption></figcaption></figure>

When developing an integration request, being it a simple file transfer or a complex flow, the use of\
contracts simplifies the flows since they contain a description of:

* the **elements** that will be involved in each phase of Input, Mediation and Output
* the **actions** that will be carried out on the elements or among them
* the **events** that will trigger the actions
