# Architecture

> For the complete documentation index, see [llms.txt](https://doc.ibexa.co/en/saas/llms.txt).

Cohesivo architecture is structured in multiple layers connected by APIs.

Cohesivo architecture is based on the philosophy to **use APIs** that is maintained in the long term. This **makes upgrades easier and provides lossless couplings** between all parts of the architecture, at the same time improving the migration capabilities of the system.

The structure of a Cohesivo app is based on the Symfony framework but content management functions rely on the public PHP API. Other applications integrate with Cohesivo via REST API, which also relies on the public PHP API.

![Architecture](https://doc.ibexa.co/en/saas/administration/img/architecture.png "Architecture")

The architecture of Cohesivo is layered and uses clearly defined APIs between the layers.

| Layer                                                                                                     | Description                                                                                                                                                             |
| --------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Back office](https://doc.ibexa.co/en/saas/administration/back_office/back_office_configuration/index.md) | Back office contains all the necessary parts to run the Cohesivo's back office interface.                                                                               |
| [REST API v2](https://doc.ibexa.co/en/saas/api/rest_api/rest_api_usage/rest_api_usage/index.md)           | The REST API v2 enables you to interact with a Cohesivo installation through the HTTP protocol, following a REST interaction model.                                     |
| Business Logic                                                                                            | The business logic is defined in the kernel. This business logic is exposed to applications via an API. It is used to organize development of the user interface layer. |
