# Data model

### What is a data model?

**Data model** in the Eximee platform is a central element that describes **the business data structure** used in the low-code application. The model serves two functions

* documentary, providing unambiguous information about the source of each field value
* technical, performing the operations necessary to retrieve the value

The data model makes it possible to model the data structure in a tree structure. Each tree node represents a business domain object of the application, e.g. applicant, loan, or correspondence address. Each leaf of the tree denotes a single field storing a specific value.

Each field in the model has a defined method of obtaining its value (the so-called *"data source"*). Sources can calculate data **locally**, based on constant default values, algorithms implemented in ScriptCode (e.g. PageService, ServiceTask, ...) and data entered manually by users (e.g. in loan application fields or in a credit analyst task). Values can also be obtained **remotely** from services via REST API.

<figure><img src="https://2112972046-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2F3S7wrPyQFHbXLR2VAQ38%2Fmodel%20danych%20-%20szkolenie%20-%20model%201.jpg?alt=media&#x26;token=76d6f7f6-63ae-4aee-bf8c-a1b4a86f35a6" alt=""><figcaption></figcaption></figure>

The data described in the model is stored in many places, not necessarily in Eximee platform components. The task of the data model is to retrieve the value for each field from the indicated location at the appropriate time. It is therefore a component **coordinating data retrieval**, not only storing it.

Each low-code application has its own data model definition. There is no need to create one common *"mega-model"* covering all areas of the institution. The data model exists only in the **context of the running application** and is not global for the entire platform. This means that a separate instance of the data model is created for each running application (see [przechowywanie-danych-w-modelu](https://docs.eximee.com/documentation/documentation-en/budowanie-aplikacji/model-danych/przechowywanie-danych-w-modelu "mention"))

{% hint style="info" %}
A good data model can significantly facilitate the maintenance and development of an application. The ability to quickly verify the source of a given value is key when analyzing problems and when planning application enhancements. Remember to use clear names for objects and fields, specific documentation in descriptions, and to keep the model definition up to date!
{% endhint %}
