> For the complete documentation index, see [llms.txt](https://docs.gapvelocity.ai/webmap/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gapvelocity.ai/webmap/general/backend/architecture.md).

# Architecture

This section talks about the `Architecture` of `WebMAP5`. This architecture consists of the `Core Services` (Components on the blue box), a `Client` web application, and a `Desktop Compatibility Platform`.

![](/files/-MF6hTxFXedfKHlHzt2E)

For a more in-depth explanation of each component, please go the specific documentation page for each one of the main components:

* `Core Services`:
  * `Core module:` This Module is in charge of managing all the task related to observables, like `Reference Management`, `Storage of Observable`, etc.
  * `Messaging Module`: This Module is in charge of communication between components, features like `Mappers` are implemented in this component.
  * `Web Server Module`: This Module is in charge of the communication between the `Client` application and the backend.
* `Desktop Compatibility Module`: This Module is designed to be replaced depending on the source platform. For example, there is a `Winforms Desktop Compatibility Platform` which is intended to be used when a `Winforms` application is migrated.

### WebMAP request execution

`Core Services` contains several [middlewares](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-7.0) that allow the implementation of memory state tracking in an ASP.NET Core application, said middlewares create a layer between the native ASP.NET Core mechanisms and a WebMAP application which are used to handle the correctness of an application's state during its lifecycle.

<figure><img src="/files/JBguqIwQRJpllxyy6xoL" alt=""><figcaption><p> WebMAP request sequence diagram</p></figcaption></figure>

{% file src="/files/qlww5qxDRNqTGuYFy1G7" %}
