# Code Understanding Back-End

## Architecture

![](https://3734728532-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MPGL5qkm8R6ZRVzFLyt%2F-MT1VYccX4cJbvgNPQPk%2F-MT290kJewUfl7VsAlyI%2FbackEnd_diagram.png?alt=media\&token=4807062e-cd13-4c18-8630-4d16e1f08d3c)

### Components

#### GraphStructureService.Common

Common contains important information for the connection between the application and the databases. Also is the component that interacts with the DB Manager.

#### Controller

The controller is responsible for returning the information or response to the requests send by [Analyzer](https://docs.gapvelocity.ai/generic-infrastructure-internal/data-analysis-vision/code-understanding/untitled).

The requests can be sorted into 3 categories

* Information requests
  * getAllOperations
  * getAllLabels
  * getContainerJobState
* Azure requests
  * startContainer
* Queries&#x20;
  * excuteOperation
    * System
    * Node
  * excuteCustomQuery

#### QueryExecutor

&#x20;This component will use a mechanism to connect with the database, retrieve the data rows for a query, and finally, return the information in a format that the Analyzer can use, using the graph or dataset models.

#### AbstractGraphFactory&#x20;

This component is simple, using the raw data obtained from a DB it will populate a model to be used in the analyzer.
